The Delphi Container and Algorithm Library (DeCAL) is a powerful library of reusable container classes, generic algorithms, and an easy to use persistence mechanism. It is similar to and based on Stepanov's STL.
Back in the first decade, DeCAL and it's predecessor STL was used in many commercial applications. It was released by Ross Judson on 22nd Sep 2000.
I'm still using DeCAL for some small tools. Changing to Delphi 9 broke DeCAL due to the lack of WideString support which is now the default string type in Delphi. After finding the problem and fixing it some time ago, I finally decided to share the code.
Source: https://sourceforge.net/projects/decal/
I didn't check in the original source to GitHub, because the Delphi IDE messes with the spaces and tabs making a diff impossible because almost every line is marked as changed.
Mozilla Public License 1.0
- Added String support for Delphi XE standard strings (former WideString)
- Fixed a bug in Superstream. A TChar was incremented to walk a buffer which was okay when every char in a string was one byte. (Changed TChar to TByte)
I'm still using DeCAL for a bunch of projects. It's easily implemented with a very small footprint and has decent performance. There are no TESTS included other than the original files "DeCALTesting.pas" and "RandomTesting.pas". Test Driven Development (TDD) was unknown in the 1990's.
I'm currently using DeCAL with Delphi 11 "Community Edition" with no problems. I wouldn't suggest using it for large projects due to the missing tests. Use this fix at your own risk