jeffijoe/awilix

Extremely powerful Inversion of Control (IoC) container for Node.JS

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 6 minutes ago
Type:Library / SDKCategory(s):Core & Utility LibrariesLanguages & Runtimes
Added to GitGenius on September 16th, 2026
Created on February 23rd, 2016
Open Issues & Pull Requests: 5 (+0)
GitHub issues: Enabled
Number of forks: 148
Total Stargazers: 4,229 (+0)
Total Subscribers: 27 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 0.5 hours
Mean response time: 12.4 hours
90th percentile: 12.4 hours
Tracked items: 33

Most active contributors

Sign in to see contributor activity.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 1
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 53 days
Stale 30+ days: 1
Stale 90+ days: 0

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • enhancement (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

Awilix is an Inversion of Control container for Node.js that manages dependency injection through a centralized registry system.

The tool solves the problem of managing complex dependency graphs in applications by allowing developers to register services, factories, and singletons in a container and resolve them on demand. Rather than manually passing dependencies through constructor parameters or maintaining global references, Awilix lets you declare what your modules need and automatically wires them together. The container supports multiple lifetime management strategies, including transient instances created fresh each time, singletons reused across the application, and scoped instances tied to specific request lifecycles.

Awilix suits projects where dependency management becomes unwieldy as the codebase grows, particularly in server-side Node.js applications with many interconnected modules. It works well in frameworks and larger applications where decoupling components from their dependencies improves testability and maintainability. The tool is particularly valuable when you need fine-grained control over object lifecycles and want to avoid circular dependency issues through explicit registration patterns.

The project maintains active engagement with its codebase through regular updates and responsiveness to issues. Development shows consistent attention to code quality and feature refinement, with the maintainers addressing user concerns and incorporating feedback into the tool's evolution. The project demonstrates a commitment to keeping the codebase current with TypeScript and Node.js ecosystem changes.