A FreePascal library providing generic collection classes like TList, TDictionary, and THashMap.
Generics.Collections is a FreePascal library that provides generic collection classes such as TList, TDictionary, and THashMap. It solves the problem of type-unsafe collections in Pascal by offering compile-time type checking for container types, reducing runtime errors and improving code maintainability.
FreePascal developers who need modern, type-safe collection classes for their applications, particularly those transitioning from older Pascal codebases or requiring .NET/Java-like collection functionality.
Developers choose Generics.Collections because it provides native FreePascal implementations of generic collections without external dependencies, offering better type safety than traditional Pascal collections while maintaining language compatibility.
FreePascal Generics.Collections library (TList, TDictionary, THashMap and more...)
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Implements compile-time type checking for collections, preventing common runtime errors and improving code reliability, as emphasized in the key features.
Brings .NET/Java-style generic collections like TList and TDictionary to FreePascal, filling a gap in the ecosystem for modern data structures.
Designed to work natively with FreePascal's generics system, ensuring compatibility and reducing the need for external dependencies.
Provides type-safe alternatives to traditional non-generic collections, helping developers update older Pascal codebases with minimal friction.
The README lists several open FPC bugs, including CRITICAL ones like 26030 and 25918, which can lead to instability and unexpected behavior in production.
Only compatible with FreePascal, not with other Pascal compilers like Delphi, restricting its use in mixed or proprietary environments.
The minimal README lacks detailed examples, API guides, or troubleshooting resources, making it harder for new users to adopt and debug.
Generic implementations may introduce runtime overhead compared to hand-optimized, type-specific collections, especially in high-performance scenarios.