Libgee - GObject collection library

News

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

    • Iterator
      • BidirIterator

        • BidirListIterator

      • ListIterator

        • BidirListIterator

  • 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 git://git.gnome.org/libgee 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 git://git.gnome.org/libgee

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>

Projects/Libgee (last edited 2016-07-15 19:24:13 by ChrisDaley)