google/guice

Guice (pronounced 'juice') is a lightweight dependency injection framework for Java 11 and above, brought to you by Google.

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 15 minutes ago
Added to GitGenius on September 4th, 2026
Created on May 28th, 2014
Open Issues & Pull Requests: 363 (+0)
GitHub issues: Enabled
Number of forks: 1,678
Total Stargazers: 12,731 (+0)
Total Subscribers: 514 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 19.6 days
Mean response time: 533.6 days
90th percentile: 2010.2 days
Tracked items: 37

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 100% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Only 0% of issues opened in the past year have been closed.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 40
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 1,218 days
Stale 30+ days: 39
Stale 90+ days: 35

Recent activity

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

Top labels

  • imported (3)
  • Component-Persist (1)
  • Priority-Low (1)
  • enhancement (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

Guice is a lightweight dependency injection framework for Java that eliminates the need for factories and direct instantiation of objects in application code. The framework uses type-safe annotations like @Inject to manage object creation and wiring, allowing developers to declare dependencies declaratively rather than imperatively constructing them. By centralizing dependency management, Guice makes code easier to test, modify, and reuse across different contexts.

The core problem Guice solves is the tight coupling that results from manual object creation and factory patterns in Java applications. Rather than scattering instantiation logic throughout code, Guice provides a centralized injector that understands your type system and automatically satisfies dependencies at runtime. The framework emphasizes simplicity and predictability, avoiding hidden magic so that code remains understandable with or without tooling support. When errors occur, Guice generates detailed diagnostic messages to aid debugging.

Guice suits teams building applications where testability and maintainability matter, particularly those working with large codebases where dependency graphs become complex. The framework works well for projects that value explicit, type-safe configuration over convention-based approaches. Developers should choose Guice if they prefer a minimal, focused framework that solves dependency injection without attempting to be a comprehensive application platform. The project offers two release lines: one supporting the older javax namespace and another supporting the newer jakarta namespace, allowing teams to migrate at their own pace.

The project maintains active continuous integration and publishes comprehensive javadoc documentation for multiple release versions. The framework has been deployed in production systems for many years, indicating stability and real-world validation of its design approach.