A high-level Java bytecode generation library for creating dynamic proxies and intercepting field access.
cglib is a Java bytecode generation library that provides a high-level API for creating and transforming Java bytecode at runtime. It enables frameworks to generate dynamic proxy objects and intercept field access without requiring source code modifications. The library is primarily used by AOP frameworks, testing tools, and data access layers to implement advanced runtime behavior.
Java framework developers working on AOP implementations, testing frameworks, ORM tools, and dependency injection containers that require runtime code generation capabilities.
cglib offers a higher-level abstraction over raw bytecode manipulation, making it easier to implement dynamic proxies and field interception compared to working directly with low-level bytecode libraries. It has been widely adopted in the Java ecosystem for its performance and integration capabilities.
cglib - Byte Code Generation Library is high level API to generate and transform Java byte code. It is used by AOP, testing, data access frameworks to generate dynamic proxy objects and intercept field access.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides a higher-level API over raw bytecode manipulation, making dynamic proxy and field interception accessible without deep bytecode expertise, as noted in the README's philosophy.
Enables runtime creation of proxy classes for method and field interception, widely used by AOP, testing, and data access frameworks as highlighted in the key features.
Has been adopted by established Java frameworks for AOP and dependency injection, indicating reliability in past production environments based on the README's usage notes.
Allows direct bytecode transformation for behavior modification and performance gains, essential for data access layers and runtime optimizations.
The README explicitly states cglib is unmaintained and may not work on newer JDKs like JDK17+, limiting its future viability and requiring migration efforts.
Struggles with modern Java versions, necessitating patches or alternatives for current projects, as admitted in the README's important note.
While a wiki exists, the lack of active maintenance means documentation may be stale and community support is minimal compared to alternatives like ByteBuddy.