libgee

Read-only mirror of https://gitlab.gnome.org/GNOME/libgee

LGPL-2.1 License

Stars
17

Libgee is a collection library providing GObject-based interfaces and classes for commonly used data structures.

Libgee provides the following interfaces:

 * Traversable
       o Iterable
             + Collection
                   # List
                         * BidirList
                   # Set
                         * SortedSet
                             o BidirSortedSet
                   # MultiSet
                   # Queue
                         * Deque
             + Map
                   # SortedMap
                         * BidirSortedMap
       o Iterator
             + BidirIterator
                   # BidirListIterator
             + ListIterator
                   # BidirListIterator
 * MultiMap
 * Future

The ArrayList, ArrauQueue, ConcurrentLinkedList, ConcurrentSet, HashSet, HashMap, HashMultiSet, HashMultiMap, LinkedList, PriorityQueue, 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.