Libgee - GObject collection library
News
- February 11, 2018
Introduction
Libgee is an utility library providing GObject-based interfaces and classes for commonly used data structures.
Libgee provides the following interfaces:
- Travsersable
- Iterable
- Collection
- List
BidirList
- Set
SortedSet
BidirSortedSet
MultiSet
- Queue
- Deque
- Map
SortedMap
BidirSortedMap
- List
- Collection
- Iterator
BidirIterator
BidirListIterator
ListIterator
BidirListIterator
- Iterable
MultiMap
- Future
The ArrayList, ArrayQueue ConcurrentLinkedList, ConcurrentSet, HashSet, HashMap, HashMultiSet, HashMultiMap, LinkedList, PriorityQueue, Promise, TreeSet, TreeMap, TreeMultiSet, and TreeMultiMap classes provide a reasonable sample implementation of those interfaces. In addition, a set of abstract classes are provided to ease the implementation of new collections.
Around that, the API provide means to retrieve read-only views, efficient sort algorithms, simple, bi-directional or index-based mutable iterators depending on the collection type.
Libgee is written in Vala and can be used like any GObject-based C library. It's planned to provide bindings for further languages.
License
Libgee is licensed under the LGPL 2.1+
Download
Libgee is available for download at http://download.gnome.org/sources/libgee/
Versions
Currently there are 2 major versions of API widely deployed.
- gee 0.8 - current version of API used in all newer releases. The library is using proper versioning and the API and ABI is kept stable. Unfortunately it uses suffix 0.8, which looks like an older version than 1.0 even though it is newer.
- gee 0.6 (aka. gee-1.0) - a legacy API, no longer developed. From version 0.1 to 0.6 the suffix for the library was 1.0 even though the API and ABI was not always kept stable.
Documentation
Git repository
Development is going on https://gitlab.gnome.org/GNOME/libgee.git and can be viewed here.
You can check out the current development snapshot using (please note, that you need vala installed to build it from git):
git clone https://gitlab.gnome.org/GNOME/libgee.git
Bugs
If you encounter any bug when using libgee, please, check on its Bugzilla page if it is reported and, if not, do it.
Contact
Discussion currently takes place on the Libgee mailing list and in the IRC channel #gee on GIMPnet.
Jürg Billeter <j at bitron dot ch>
Didier "Ptitjes" <ptitjes at free dot fr>
Maciej Piechotka <uzytkownik2 at gmail dot com>