{"ref":"artifact:bothzoli-abap-ioc-container","page":"/artifacts/bothzoli-abap-ioc-container","json":"/artifacts/bothzoli-abap-ioc-container.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"bothzoli-abap-ioc-container","name":"bothzoli/ABAP-IoC-Container","artifact_type":"package","ecosystem":"abap","domain":"developer-experience","origin_ring":"independent","description":{"one_line":"An inversion-of-control container for ABAP, with which collaborators are registered and resolved instead of each call site constructing what it needs; its maintainer calls it a naive implementation.","short":"Inversion-of-control container for ABAP","what_it_solves":"An implementation of [dependency injection](capability:dependency-injection) in ABAP: a container that collaborators are registered with and resolved from, instead of each call site constructing what it needs. Its maintainer calls the implementation naive. The reasoning behind it is written up in [Implementing an IoC Container in ABAP](https://dev.to/bothzoli/implementing-an-ioc-container-in-abap-534), which the README gives as the place for more details."},"links":{"repo":"https://github.com/bothzoli/ABAP-IoC-Container"},"identity":{"license":"MIT"},"source_available":true,"provides":[{"capability":"capability:dependency-injection","what_it_does":"A naive implementation of an inversion-of-control container in ABAP, as its own description states.","sources":[{"url":"https://github.com/bothzoli/ABAP-IoC-Container","title":"bothzoli/ABAP-IoC-Container — repository","checked":"2026-10-18","quote":"A naive implementation of an IoC Container in ABAP"}]}],"drafted_with_ai":true,"provenance":{"discovered_via":[{"source":"source:dotabap"}],"first_seen":"2026-09-14"},"maintainers":["actor:bothzoli"],"contributors":["actor:alezhu","actor:bothzoli"]},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"unknown","evidence":"no release data"},{"label":"Continuity","tier":"fair","evidence":"2 contributors"},{"label":"Repository","tier":"poor","evidence":"pushed 2021-07, not archived"}],"compatibility":[{"label":"Declared for","tier":"fair","evidence":"nothing declared"},{"label":"Survived majors","tier":"unknown","evidence":"not read on ABAP: its lines run side by side"},{"label":"Maintainer's CI","tier":"fair","evidence":"no CI configured"}],"practice":[{"label":"Tests","tier":"poor","evidence":"none found in the tree"},{"label":"Docs","tier":"poor","evidence":"README <1 KB"},{"label":"Changelog","tier":"fair","evidence":"none in the repo"}],"reach":[{"value":null,"unit":"installs/week"},{"value":4,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-24","npm":"not published under this name","stars":4,"forks":3,"open_issues":0,"archived":false,"pushed_at":"2021-07-30","license_spdx":"MIT","org_owned":false,"default_branch":"master","created_at":"2019-10-18T13:01:40Z","open_prs":0,"tree_truncated":false,"test_files":0,"workflows":0,"other_ci":false,"readme_bytes":208,"docs_files":0,"changelog":false,"license_file":true,"dts_files":0,"first_commit":"2019-10-18","last_commit":"2021-07-30","commits":22,"contributors":2,"readme_path":"README.md","readme_sha":"3898f9670e1f5b7f66027af8dcd3abb6641fb74c","repo_read":"2026-10-24"},"edges":{"maintainers":[{"ref":"actor:bothzoli","name":"Zoltan Both","json":"/actors/bothzoli.json"}],"contributors":[{"ref":"actor:alezhu","name":"Alexandr Zhuravlev","json":"/actors/alezhu.json"},{"ref":"actor:bothzoli","name":"Zoltan Both","json":"/actors/bothzoli.json"}],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}