Welcome to dcollections
dcollections is an implementation of collection classes inspired by Tango, Java, and C++. The goal of dcollections is to provide an efficient collections implementation that uses as many D ideas as possible.
The latest release is version 0.02, available in tarball and zip formats. See below on how to access source via svn.
License
dcollections is Open Source software distributed under the BSD License. See the full license here.
Features
- Hash, RBTree, Link, and Array implementations for appropriate containers.
- List, Set, Map, and Multiset containers provided.
- Able to swap out underlying implementation of a container, or customize implementation.
- Minimized heap activity. All cursors are struct-based.
- Should be compatible with both Tango and Phobos (tested with Tango).
- Slicing where appropriate (currently only ArrayList, but will add to other containers).
- Removal while traversing.
- Removal of elements does not invalidate cursors when possible.
- Cursors can be kept for later use (such as O(1) removal if supported by the container).
- Interfaces for implementation-independent code.
- Concatenation and appending for lists.
- dup functions.
- Set/Map intersection.
- Handy filter, transform, and chain iterators.
- Custom allocators.
Documentation
DDoc is used to generate all the API documentation, which can be found here.
I will build some sort of tutorial eventually.
TODO
In no specific order:
- Slicing of TreeMap/Set/Multiset
- Slicing of LinkList (cursor range only)
- tutorial
- more complete unit tests
Get it
trunk:
svn co http://svn.dsource.org/projects/dcollections/trunk
Version X.XX:
svn co http://svn.dsource.org/projects/dcollections/tags/version-X.XX
You can find download zip and tarball packages here.
