For generic interfaces, the strongest matches are jeffijoe/awilix (Awilix is a dependency injection framework that provides the), facebookarchive/inject (This library provides a dependency injection framework for Go) and derekyrc/mini-spring (This is a lightweight dependency injection and inversion of). code4craft/tiny-spring and codegangsta/inject round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.
Explore the best generic interface libraries for your project. Compare top-rated GitHub repositories by activity and features to find the best fit.
Awilix is a JavaScript dependency injection framework and inversion of control container. It provides a centralized system for registering and resolving services, decoupling application components by automating how dependencies are created and passed to the functions or classes that require them. The framework features an automatic module loader that scans the filesystem using glob patterns to register dependencies based on filenames and exports. It supports parameter-name-based injection and proxy-based resolution to manage how dependencies are delivered to constructors and functions. The s
Awilix is a dependency injection framework that provides the requested interface abstraction and boilerplate reduction by automating service resolution and component decoupling in TypeScript and JavaScript applications.
Inject is a dependency injection framework for Go that automates the assembly of complex object graphs. By leveraging runtime reflection, the library dynamically inspects object structures to resolve and populate required dependencies, decoupling component initialization from business logic. The framework manages object lifecycles through both singleton and factory-based provisioning. It maintains a central registry to share singletons across an application for consistent state, while also supporting the creation of unique, private instances to isolate state between different components. To
This library provides a dependency injection framework for Go that reduces boilerplate by automating object graph assembly and component initialization, fitting the requirement for interface abstraction and dependency management.
mini-spring is a Java dependency injection framework and inversion of control container. It manages the full lifecycle of beans, including instantiation, property population, and scope management, while providing a system for automating the wiring of components. The project implements a Java AOP framework that uses dynamic proxies to intercept method calls for cross-cutting logic. It also functions as a Java component scanner to automatically discover and register managed objects via annotations and as a Java event bus to decouple components through a publish-subscribe multicast system. The
This is a lightweight dependency injection and inversion of control framework that provides the requested interface abstractions and boilerplate reduction through annotation-driven component management.
tiny-spring is a Java inversion of control container and aspect-oriented programming framework. It provides a system for managing object lifecycles and dependency injection to decouple application components. The project features a bytecode proxy generator that enables method interception and behavioral modification for classes that do not implement interfaces. It uses pointcut expressions to match specific classes and methods for the execution of cross-cutting logic via dynamic proxies. The framework manages singleton components and resolves object dependencies using lazy initialization. Ap
This is a lightweight dependency injection and AOP container that provides the requested interface abstraction and boilerplate reduction through inversion-of-control patterns in Java.
Inject is a dependency injection library for Go that manages object lifecycles and wires application components by automating the provision of dependencies. It functions as a reflection-based container that maps specific values to their corresponding types, enabling the automatic retrieval and injection of objects into application logic. The library distinguishes itself through its ability to perform automatic function invocation, where it inspects function signatures at runtime to resolve and provide required arguments from a central registry. It also supports struct field injection, which p
This library provides a reflection-based dependency injection framework that reduces boilerplate by automating component wiring and argument resolution, fitting the requirement for interface abstraction and dependency management.
This project is a PHP interface library that provides a component interoperability layer. It consists of a set of framework-agnostic contracts and standardized definitions that enable different libraries to work together via a consistent contract. The library focuses on providing minimal shared interfaces and API definitions, allowing software components to be used across different PHP projects regardless of the underlying framework. This approach decouples application logic from concrete framework implementations. The project specifically covers service container abstraction and dependency
This library provides a standardized set of PHP interfaces and service container abstractions that enable decoupling and interoperability, effectively serving as a framework-agnostic layer to reduce boilerplate and enforce consistent interface patterns.
Spring Framework is an enterprise Java framework providing a comprehensive infrastructure for building server-side applications. It functions as a dependency injection container and a Java application framework designed to support scalable backend development through modular architecture. The project provides tools for aspect-oriented programming to intercept method calls using dynamic proxies, allowing the application of cross-cutting concerns such as security and transactions. It also includes a centralized system for managing object lifecycles and coordinating component wiring by injecting
Spring provides a robust set of interface abstractions, dependency injection, and aspect-oriented programming tools that effectively reduce boilerplate in Java applications, fitting the requirement for a framework designed to manage component wiring and infrastructure.
Boost is a collection of portable, high-performance source libraries that extend the C++ standard library. It provides a wide range of reusable components, data structures, and algorithms designed to add capabilities to the base language across different platforms. The project is distinguished by its extensive focus on compile-time template metaprogramming and generic programming. It implements advanced architectural patterns such as policy-based design, concept-based type validation, and the use of SFINAE for conditional template resolution to minimize runtime overhead. The library covers a
Boost is a comprehensive collection of C++ libraries that provides the industry-standard framework for generic programming, template metaprogramming, and interface abstractions to significantly reduce boilerplate code.
This project is a C++ Standard Library implementation that provides the foundational classes and functions required by the ISO C++ standard. It serves as a template-based generic programming library, providing the Standard Template Library's set of containers, algorithms, and iterators for data manipulation. The library is a core component of the MSVC toolchain, designed specifically for integration with the Microsoft Visual C++ compiler and build tools. The implementation covers memory management through optimized allocators and buffer strategies, as well as tools for performance benchmarki
This is a foundational C++ Standard Library implementation that provides the core generic programming patterns, containers, and algorithms required for building type-safe, reusable abstractions in C++.
Get is a framework for Flutter that provides a comprehensive toolkit for dependency injection, internationalization, route management, and reactive state management. It includes a UI utility kit for handling themes, adaptive layouts, and the display of overlays such as snackbars and dialogs. The framework is distinguished by its ability to perform navigation and overlay management without requiring a build context. It also features a dependency injection container that manages the memory lifecycle of controllers and services, and a localization system that maps keys to strings to update appli
Get is a comprehensive Flutter framework that provides dependency injection and state management patterns specifically designed to abstract complex boilerplate and simplify cross-platform application architecture.
This is a dependency injection framework and inversion of control container for Python. It decouples object creation from business logic by managing how services and their dependencies are assembled, delivered, and linked within an application. The framework is distinguished by its ability to perform automated component wiring, using import hooks and decorators to inject dependencies into functions and classes across different modules. It supports non-blocking flows through an asynchronous dependency resolver and manages the initialization and shutdown sequences of shared external resources a
This is a dependency injection framework that provides the interface abstractions and boilerplate reduction needed to manage object lifecycles and service wiring in Python applications.
Refit is a type-safe REST client for .NET that transforms API definitions into live interfaces. It functions as an automatic API proxy generator, allowing developers to define endpoints as interfaces to eliminate manual HTTP request boilerplate. The library is designed for compatibility with ahead-of-time compilation and trimmed binaries, utilizing build-time source generation to ensure support for native AoT deployments. The project covers a broad range of API integration capabilities, including attribute-driven request composition, automatic JSON deserialization, and request header managem
Refit provides a type-safe interface abstraction for REST APIs that significantly reduces boilerplate by automatically generating proxy implementations at build time.
Closure Library is a JavaScript standard library and utility toolset designed for building large-scale web applications. It provides a collection of core utility modules and standardized APIs to simplify complex application logic and state management. The project is built as a modular framework using a namespace-based module system to prevent global scope pollution. It is specifically designed for use with the Closure Compiler to enable aggressive dead-code elimination and minification, reducing the final delivery size in production. To ensure reliability in large projects, the library utiliz
This library provides a comprehensive set of modular utilities and interface patterns designed to standardize large-scale JavaScript development and reduce boilerplate through its integrated type-checking and namespace systems.
This project is an object persistence library and data mapper abstraction layer. It provides a set of shared interfaces and base classes designed to decouple domain logic from specific object mapper implementations, separating the business domain layer from the underlying data access implementation. The library includes a database schema management and migration tool for defining, versioning, and deploying incremental updates to database structures across different environments. It also functions as a document database mapper, translating object states into structured document formats for sto
This library provides a set of generic interfaces and base classes specifically designed to decouple domain logic from persistence implementations, effectively reducing boilerplate for data mapping tasks.
POCO is a comprehensive C++ application framework that provides a cross-platform set of libraries for building network-centric applications. It offers a unified abstraction layer that wraps platform-specific APIs, enabling the same code to run across desktop, server, mobile, IoT, and embedded systems. The framework is organized into modular libraries that can be compiled and linked selectively, allowing developers to include only the components their application needs. The framework distinguishes itself through its broad coverage of application infrastructure needs, including threading and sy
POCO is a comprehensive C++ framework that provides the requested interface abstractions and cross-platform wrappers to reduce boilerplate in network-centric applications, though it is broader in scope than a dedicated generic programming library.
This project is a comprehensive library of type-safe, high-performance data structures for Go. By leveraging language-level generics, it provides reusable containers and algorithms that eliminate the need for runtime type assertions or interface casting, ensuring efficient and type-safe data management. The library distinguishes itself through its support for persistent data structures and specialized indexing. It utilizes copy-on-write semantics and memory sharing to maintain multiple versions of a collection, allowing for efficient modifications without duplicating entire datasets. Addition
This library provides a set of type-safe, generic data structures for Go that help reduce boilerplate code by abstracting common container patterns.
This library is a collection of zero-overhead C++ abstractions designed to replace primitive types with strict wrappers. By leveraging template metaprogramming, it enforces compile-time type safety and validates data integrity, ensuring that logic errors are caught during the build process rather than at runtime. The project distinguishes itself by providing a zero-cost abstraction layer that maps high-level type safety wrappers directly to machine instructions. It utilizes static type identity enforcement to treat logically distinct data as incompatible types, even when they share the same u
This library provides C++ utilities for creating type-safe interfaces and preventing common programming errors, effectively serving as a tool for building robust, boilerplate-reducing abstractions.
This project provides a standardized architectural framework for building scalable, full-stack enterprise applications. It serves as a foundational boilerplate that enforces clean architecture principles, ensuring that business logic remains isolated from infrastructure concerns and external data persistence details. By organizing code into feature-based modules rather than technical roles, the framework simplifies navigation and maintenance within large, complex codebases. The architecture distinguishes itself through a mediator-based communication model that decouples application layers and
This project provides a structured architectural framework and boilerplate for enterprise applications, offering the mediator patterns and dependency injection abstractions needed to reduce code complexity and enforce clean architecture.
This is go-generics, a collection of typesafe generic utilities for slices, sets, and goroutine patterns in Go.
This library provides a collection of type-safe generic utilities for common Go data structures and patterns, directly addressing the need for reusable abstractions to reduce boilerplate code.
Generic function interface to standard Common Lisp functions
This library provides a generic function interface for standard Common Lisp functions, enabling polymorphic dispatch and reducing boilerplate when working with different data types in a consistent, interface-oriented manner.
Include Rapid.Generics.pas unit into your project Replace Generics.Collections and Generics.Defaults units to Rapid.Generics in your uses code sections
This library provides a set of generic collection and default interface abstractions for Pascal that directly replace standard units to reduce boilerplate and improve type safety.
FreePascal Generics.Collections library (TList, TDictionary, THashMap and more...)
This library provides generic, type-safe collection implementations for FreePascal, directly addressing the need for reusable interface abstractions and boilerplate reduction in that specific language ecosystem.
| المستودع | النجوم | اللغة | الترخيص | آخر تحديث |
|---|---|---|---|---|
| jeffijoe/awilix | 4.1K | TypeScript | mit | |
| facebookarchive/inject | 1.4K | Go | MIT | |
| derekyrc/mini-spring | 6.4K | Java | Apache-2.0 | |
| code4craft/tiny-spring | 4.1K | Java | Apache-2.0 | |
| codegangsta/inject | 978 | Go | MIT | |
| symfony/contracts | 3.9K | PHP | MIT | |
| spring-projects/spring-framework | 60.1K | Java | Apache-2.0 | |
| boostorg/boost | 8.5K | HTML | BSL-1.0 | |
| microsoft/stl | 11.1K | C++ | NOASSERTION | |
| jonataslaw/get | 11.2K | Dart | MIT |