| Name | Date | Size | #Lines | LOC | ||
|---|---|---|---|---|---|---|
| .. | - | - | ||||
| .github/workflows/ | 04-Jul-2025 | - | 346 | 330 | ||
| cmake-modules/ | 04-Jul-2025 | - | 25 | 21 | ||
| configuration/ | 04-Jul-2025 | - | 600 | 458 | ||
| examples/ | 04-Jul-2025 | - | 2,254 | 977 | ||
| extras/ | 04-Jul-2025 | - | 8,278 | 6,488 | ||
| include/fruit/ | 04-Jul-2025 | - | 15,552 | 9,302 | ||
| src/ | 04-Jul-2025 | - | 1,070 | 710 | ||
| test_package/ | 04-Jul-2025 | - | 56 | 39 | ||
| tests/ | 04-Jul-2025 | - | 15,913 | 13,021 | ||
| .clang-format | D | 04-Jul-2025 | 151 | 7 | 6 | |
| .gitattributes | D | 04-Jul-2025 | 31 | 2 | 1 | |
| .gitignore | D | 04-Jul-2025 | 331 | 22 | 21 | |
| Android.bp | D | 04-Jul-2025 | 2 KiB | 70 | 63 | |
| BUILD | D | 04-Jul-2025 | 619 | 28 | 24 | |
| CMakeLists.txt | D | 04-Jul-2025 | 8.1 KiB | 169 | 134 | |
| CONTRIBUTING.md | D | 04-Jul-2025 | 10.1 KiB | 226 | 164 | |
| COPYING | D | 04-Jul-2025 | 11.1 KiB | 203 | 169 | |
| LICENSE | D | 04-Jul-2025 | 11.1 KiB | 203 | 169 | |
| METADATA | D | 04-Jul-2025 | 1 KiB | 21 | 19 | |
| MODULE_LICENSE_APACHE2 | D | 04-Jul-2025 | 0 | |||
| OWNERS | D | 04-Jul-2025 | 45 | 1 | 1 | |
| README.md | D | 04-Jul-2025 | 1.5 KiB | 13 | 9 | |
| conanfile.py | D | 04-Jul-2025 | 2.9 KiB | 74 | 61 |
README.md
1 2[](https://github.com/google/fruit/actions/workflows/test-on-linux.yml) 3[](https://github.com/google/fruit/actions/workflows/test-on-windows.yml) 4[](https://github.com/google/fruit/actions/workflows/test-on-osx.yml) 5[](https://scan.coverity.com/projects/google-fruit) 6[](https://bestpractices.coreinfrastructure.org/projects/1040) 7 8Fruit is a [dependency injection](http://en.wikipedia.org/wiki/Dependency_injection) framework for C++, loosely inspired by the Guice framework for Java. It uses C++ metaprogramming together with some C++11 features to detect most injection problems at compile-time. 9It allows to split the implementation code in "components" (aka modules) that can be assembled to form other components. 10From a component with no requirements it's then possible to create an injector, that provides an instance of the interfaces exposed by the component. 11 12See the [wiki](https://github.com/google/fruit/wiki) for more information, including installation instructions, tutorials and reference documentation. 13