# Welcome to Parsley > Learn about the Parsley library and its key features. - [Welcome to Parsley](https://matzefriedrich.github.io/parsley-docs/index.md): Welcome to Parsley - [Quick Start](https://matzefriedrich.github.io/parsley-docs/quick-start/index.md): Learn how to register and resolve services dynamically using Parsley to implement the Inversion of Control design principle. - [Licensing Information](https://matzefriedrich.github.io/parsley-docs/licensing.md): The Parsley library is released under the Apache License, Version 2.0. This license allows you to freely use, modify, and distribute the library, provided that certain conditions are met, such as including the original license and a notice of modifications. - [CLI Reference](https://matzefriedrich.github.io/parsley-docs/cli-reference/index.md): With the Parsley CLI, you can generate boilerplate code for advanced DI features effortlessly Whether you're working with proxies, decorators, or need support for dynamic dependency resolution, Parsley CLI has you covered. ## Registration Concepts - [Register Constructor Functions](https://matzefriedrich.github.io/parsley-docs/registration/register-constructor-functions.md): Register services in Parsley using constructor functions to automatically resolve and inject dependencies into your application. - [Register Instances](https://matzefriedrich.github.io/parsley-docs/registration/register-instances.md): Manually register complex service instances as singletons in Parsley to ensure consistent state and availability. - [Registry Hierarchy](https://matzefriedrich.github.io/parsley-docs/registration/registry-hierarchy.md): Understand how to use linked registries and scopes to manage service registration inheritance and isolation in Parsley. - [Multi-Registry Aggregation](https://matzefriedrich.github.io/parsley-docs/registration/multi-registry-aggregation.md): Combine multiple service registries into a single accessor for service resolution in Parsley. - [Register Factory Functions](https://matzefriedrich.github.io/parsley-docs/registration/register-factory-functions.md): Use factory functions in Parsley for dynamic service configuration and more control over service creation. - [Context-Aware Factory Functions](https://matzefriedrich.github.io/parsley-docs/registration/context-aware-factory-functions.md): Register context-aware factory functions in Parsley to resolve services on demand using a specific context. - [Register Named Services](https://matzefriedrich.github.io/parsley-docs/registration/register-named-services.md): Use named service registration in Parsley to manage multiple implementations of the same interface with precise control. - [Manage Multiple Service Implementations](https://matzefriedrich.github.io/parsley-docs/registration/register-lists.md): Register and inject multiple services of the same contract type in Parsley using arrays or slices. - [Register Service Modules](https://matzefriedrich.github.io/parsley-docs/registration/register-module.md): Group related services into modules in Parsley to improve code organization, reusability, and separation of concerns. - [Bootstrap Application](https://matzefriedrich.github.io/parsley-docs/registration/bootstrap-application.md): Manage your application's lifecycle and dependency injection using the Parsley bootstrap package. ## Resolving Services - [Service Disposal & Cleanup in Parsley](https://matzefriedrich.github.io/parsley-docs/resolving/service-disposal.md): Learn how to manage resource cleanup and lifecycle disposal for singleton and scoped services using the Disposable interface in Parsley. - [Lifetime Scopes in Parsley](https://matzefriedrich.github.io/parsley-docs/resolving/lifetime-scopes.md): Manage service instance lifetimes in Parsley using transient, scoped, and singleton lifetime settings. - [Passing Specific Instances to the Resolver](https://matzefriedrich.github.io/parsley-docs/resolving/resolve-with.md): Use ResolveWithOptions in Parsley to dynamically pass specific instances to the resolver and override registered dependencies. - [Live Services: Activating Unregistered Dependencies](https://matzefriedrich.github.io/parsley-docs/resolving/resolve-live-services.md): Create instances of unregistered dependencies dynamically in Parsley while leveraging existing registered services. - [Lazy Proxies](https://matzefriedrich.github.io/parsley-docs/resolving/resolve-lazy-proxy.md): Optimize performance by using lazy proxies in Parsley to defer service instance creation until they are needed. ## Advanced Features - [Validating Service Registrations](https://matzefriedrich.github.io/parsley-docs/advanced-features/service-registration-validation.md): Validate Parsley service registrations using the built-in Validator to identify missing or circular dependencies and prevent runtime errors. - [Manual Proxy and Interceptor Implementation](https://matzefriedrich.github.io/parsley-docs/advanced-features/manual-proxy-interceptor.md): Learn how to manually implement proxies and interceptors in Parsley without using the CLI generator. - [Advanced Dependency Injection with Generated Proxies](https://matzefriedrich.github.io/parsley-docs/advanced-features/generate-proxy-services.md): Explore how the Parsley CLI generates proxy services and interfaces for service contracts using go:generate annotations. - [Mocking Made Easy with Parsley](https://matzefriedrich.github.io/parsley-docs/advanced-features/generate-mocks.md): Learn how to use the Parsley CLI to generate mock implementations for service interfaces in Go, configure their behavior, and assert expectations in tests. ## Integrations - [Walkthrough: Parsley Integration with Cobra](https://matzefriedrich.github.io/parsley-docs/integrations/cobra.md): Integrate Parsley with Cobra to build modular CLI applications using typed services and dependency injection. - [Walkthrough: Parsley Integration with Chi](https://matzefriedrich.github.io/parsley-docs/integrations/chi.md): Set up a Chi application using Parsley to create a modular, testable, and maintainable codebase. - [Walkthrough: Parsley Integration with Gin](https://matzefriedrich.github.io/parsley-docs/integrations/gin.md): Set up a Gin application using Parsley to create a modular, testable, and maintainable codebase. - [Walkthrough: Parsley Integration with GoFiber](https://matzefriedrich.github.io/parsley-docs/integrations/gofiber.md): Set up a GoFiber application using Parsley to create a modular, testable, and maintainable codebase. ## Package Reference ### pkg - [bootstrap](https://matzefriedrich.github.io/parsley-docs/library/pkg/bootstrap.md): Official documentation of the Parsley´s "bootstrap" package - [features](https://matzefriedrich.github.io/parsley-docs/library/pkg/features.md): Official documentation of the Parsley´s "features" package - [registration](https://matzefriedrich.github.io/parsley-docs/library/pkg/registration.md): Official documentation of the Parsley´s "registration" package - [resolving](https://matzefriedrich.github.io/parsley-docs/library/pkg/resolving.md): Official documentation of the Parsley´s "resolving" package - [types](https://matzefriedrich.github.io/parsley-docs/library/pkg/types.md): Official documentation of the Parsley´s "types" package ## CLI Reference ### completion - [completion](https://matzefriedrich.github.io/parsley-docs/cli-reference/completion/index.md): Generate the autocompletion script for the specified shell - [completion bash](https://matzefriedrich.github.io/parsley-docs/cli-reference/completion/parsley-cli_completion_bash.md): Generate the autocompletion script for bash - [completion fish](https://matzefriedrich.github.io/parsley-docs/cli-reference/completion/parsley-cli_completion_fish.md): Generate the autocompletion script for fish - [completion powershell](https://matzefriedrich.github.io/parsley-docs/cli-reference/completion/parsley-cli_completion_powershell.md): Generate the autocompletion script for powershell - [completion zsh](https://matzefriedrich.github.io/parsley-docs/cli-reference/completion/parsley-cli_completion_zsh.md): Generate the autocompletion script for zsh ### generate - [generate](https://matzefriedrich.github.io/parsley-docs/cli-reference/generate/index.md): Generate boilerplate code for advanced DI features - [generate mocks](https://matzefriedrich.github.io/parsley-docs/cli-reference/generate/parsley-cli_generate_mocks.md): Generate configurable mocks for interface types. - [generate proxy](https://matzefriedrich.github.io/parsley-docs/cli-reference/generate/parsley-cli_generate_proxy.md): Generate generic proxy types for method call interception. - [init](https://matzefriedrich.github.io/parsley-docs/cli-reference/parsley-cli_init.md): Add Parsley to an application - [markdown](https://matzefriedrich.github.io/parsley-docs/cli-reference/parsley-cli_markdown.md): Exports Markdown documentation to the specified folder - [version](https://matzefriedrich.github.io/parsley-docs/cli-reference/parsley-cli_version.md): Show the current Parsley CLI version