{"id":14961663,"url":"https://github.com/Filip-Drabinski/Fluentish.Godot.DependencyInjection","last_synced_at":"2025-07-01T10:06:11.362Z","repository":{"id":154066423,"uuid":"631621249","full_name":"Filip-Drabinski/Fluentish.Godot.DependencyInjection","owner":"Filip-Drabinski","description":"Lightweight and easy-to-use dependency injection framework for the Godot game engine","archived":false,"fork":false,"pushed_at":"2025-04-21T22:34:02.000Z","size":101,"stargazers_count":62,"open_issues_count":7,"forks_count":7,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-07-01T10:06:08.861Z","etag":null,"topics":["dependency-injection","godot","godot-engine","godot-game-engine","godotengine"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Filip-Drabinski.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"license","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-04-23T15:47:51.000Z","updated_at":"2025-06-16T14:04:24.000Z","dependencies_parsed_at":"2025-04-23T00:49:22.655Z","dependency_job_id":null,"html_url":"https://github.com/Filip-Drabinski/Fluentish.Godot.DependencyInjection","commit_stats":{"total_commits":51,"total_committers":2,"mean_commits":25.5,"dds":"0.019607843137254943","last_synced_commit":"aa1a64c36e82d9b616701b950cf6fa82ad03577f"},"previous_names":["filip-drabinski/godot.dependencyinjection"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/Filip-Drabinski/Fluentish.Godot.DependencyInjection","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Filip-Drabinski%2FFluentish.Godot.DependencyInjection","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Filip-Drabinski%2FFluentish.Godot.DependencyInjection/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Filip-Drabinski%2FFluentish.Godot.DependencyInjection/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Filip-Drabinski%2FFluentish.Godot.DependencyInjection/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Filip-Drabinski","download_url":"https://codeload.github.com/Filip-Drabinski/Fluentish.Godot.DependencyInjection/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Filip-Drabinski%2FFluentish.Godot.DependencyInjection/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262941560,"owners_count":23388150,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dependency-injection","godot","godot-engine","godot-game-engine","godotengine"],"created_at":"2024-09-24T13:26:06.014Z","updated_at":"2025-07-01T10:06:11.335Z","avatar_url":"https://github.com/Filip-Drabinski.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Godot.DependencyInjection\n\nGodot.DependencyInjection is a lightweight and easy-to-use dependency injection framework for the [Godot](https://godotengine.org/) game engine, specifically tailored for C#. It aims to help developers create more modular, testable, and maintainable game projects using the Godot engine.\n\n\n## Features\n\n- Easy to set up and use\n- Supports property, field, and method injection\n- Provides member dependency injection for usage with resources\n- Utilizes standard C# dependency injection abstractions\n- Supports transient, scoped, and singleton lifetimes\n\n\n## Installation\n\nYou can install the package via [NuGet](https://www.nuget.org/packages/Godot.DependencyInjection) or clone the repository and add a project reference to the solution created by Godot.\n\n\n## Usage\n\n```csharp\nusing Godot.DependencyInjection.Services.Input;\n\npublic partial class RegularNode : Node2D\n{\n    [Inject]\n    public IInputService inputService;\n\n    [Inject]\n    public IService Service { get; set; }\n\n    [Inject]\n    public IService[] Services1 { get; set; }\n\n    [Inject]\n    public IEnumerable\u003cIService\u003e Services2 { get; set; }\n\n    [Export]\n    [InjectMembers]\n    public CustomResource Resource { get; set; }\n\n    [Inject]\n    public void Inject(IService service, IService[] services1, IEnumerable\u003cIService\u003e services2)\n    {\n        // ***\n    }\n}\n```\n\n\n## Configuration\n\n1. Create a script for dependency manager:\n    ```csharp\n    public partial class DependencyInjectionNode : DependencyInjectionManagerNode\n    {\n    }\n    ```\n2. Add the script to Project -\u003e Project Settings -\u003e Autoload.\n3. Create a `Node` and script for dependency registration:\n    ```csharp\n    public partial class DependencyRegistrationNode : Node, IServicesConfigurator\n    {\n        public void ConfigureServices(IServiceCollection services)\n        {\n            services.AddGodotServices();\n            services.AddTransient\u003cIService, Service\u003e();\n        }\n    }\n    ```\n4. Add dependency registration node to scene\n\n\n## Remarks\n\nPlease note that this project is in its early stages of development and may require significant improvements. The framework is functional but may not be suitable for production use in its current state. Any feedback, suggestions, or contributions to improve the framework are highly appreciated.\n\n## Contributing\n\nI'm currently in the process of reevaluating the architecture and scope of the project, so only pull requests containing changes to documentation might be merged. If you have any ideas for code improvements, please create a new issue instead.\n\n\n## Support\n\nIf you have any questions, issues, or suggestions, please create a new issue on the GitHub repository.\n\n\n## License\nThis project is licensed under the MIT License. See the  [LICENSE](license) file for more information.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FFilip-Drabinski%2FFluentish.Godot.DependencyInjection","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FFilip-Drabinski%2FFluentish.Godot.DependencyInjection","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FFilip-Drabinski%2FFluentish.Godot.DependencyInjection/lists"}