EZDSL (Easy Data Structures Library for Delphi) is a freeware collection of data structures classes for Delphi programmers.
The EZDSL units provide an OOP interface for classical data structures for Delphi: stacks, queues (including deques and priority queues), lists (single, double and skip), hash tables, binary trees (including search and red-black) and so forth.
My objective in writing this implementation was to provide myself with a set of well-encapsulated classes that would manage the tedium of using these types of data structures, leaving me to concentrate on coding my latest program. The data objects stored in EZDSL's containers are typeless pointers, they can be anything that can be typecast to a pointer (eg, integer types), or pointers to record structures, or objects. EZDSL provides a lot of nifty features, things like: sorted containers resorting themselves when the Compare function is changed, clone constructors, data ownership.
You can download the latest version from here. (It's version 3.03, date 14-Feb-2002, size 122,878 bytes.)
Please drop me an e-mail if you are using EZDSL, I'd love to hear from you on how you're using it.
What's Going On?
I released version 3.03 on Valentine's Day 2002 (14-Feb-2002). It includes support for Delphi 6 (but not Kylix) and has a much improved boolean array class.
My next job is to make EZDSL Kylix-aware. To be honest, it's mostly there now (I was careful when updating for version 3.03). However, there's a bunch of little things still to code up (the thread-aware stuff, the system random seed generation). I'll be having some spare time in the evenings over the next few months, so, to keep my hand in, I'll produce version 3.04.
Get With The Program!
Version 3.03 was released on 14 February, 2002, and supports Delphi 1 through Delphi 6 inclusive. You can download it from TurboPower's ftp site. It's now a zip file, by the way. This will help when I get round to completing the Kylix support.
What About SysTools?
This is a difficult question that involves me to wear several hats at once: my EZDSL hat and my TurboPower Software hat. There's the obvious difference of cost (duh!). There's also the difference of support: if I go off on a two week vacation tomorrow, you ain't gonna get no support during that time from me. No way! Of course, TurboPower has people able to give support every business day. The breadth of functionality in SysTools is far, far more than you'll ever get from me in EZDSL. The container classes also work in different ways.
I'd recommend checking out the SysTools trial-run and making your own comparison.
Money, Money, Money
Although EZDSL is currently FREE, I'm still debating whether to start charging for it. A nominal sum (say $20) just so I can buy and support a proper EZDSL web site. I've had several emails saying, yes, do it, and several that say in essence, you've saved me a lot of time and effort, but no way will I pay you for it. So, I'll probably make it a voluntary scheme: send me a nominal amount if you feel I've earned it because I've saved you time and energy (I use PayPal whenever I can for my eBay transactions--the email address that PayPal knows me by is JMBucknall@compuserve.com). Don't feel obliged to pay for it, by the way.