[Vala] [ANNOUNCE] Libgee 0.5.0 - GObject collection library

We are very pleased to announce version 0.5.0 of Libgee, the GObject collection library.

Libgee 0.5.0 is now available for download at:

Also please note that now Libgee has its own mailing-list
and its own #gee IRC channel.

New in 0.5.0

 * API changes
   * Introduce Functions hash, equal and compare function factory
   * Introduce Comparable<G> interface
   * Implementations provides defaults when constructed without function
   * ReadOnly* made internal in favor of a `read_only_view` properties
   * Iterator<G> is now mutable and resettable
   * Introduction of BidirIterator<G> bidirectional iterators
   * List<G>.list_iterator () returns a specialized ListIterator<G>
   * Various API contracts clarifications and enhancements
   * Introduce List<G>.sort () with TimSort implementation
   * Complete Map API rework
   * Introduce Queue and Deque interfaces
   * Introduce MultiSet and MultiMap interfaces (Ali Sabil)
   * Introduce SortedSet interface (Maciej Pietchotka)

 * New implementations
   * HashMultiSet and HashMultiMap (Ali Sabil)
   * TreeMultiSet and TreeMultiMap.
   * PriorityQueue
   * LinkedList now implements Deque
   * TreeSet now implements SortedSet (Maciej Pietchotka)

 * Infrastructure
   * New test framework and complete tests refactoring (Julien Peters)
   * New doc/ documentation directory (--enable-doc)
   * Test coverage analysis using lcov (--enable-coverage)
   * Basic benchmark framework and sort benchmark (--enable-benchmark)
   * Use silent rules by default for users of automake 1.11

 * Code Quality
   * Many bug fixes
   * Many optimizations
   * Lots of additional documentation
   * Better overall encapsulation, public setters have been removed
   * Better test coverage (more than 90%)

For more information about the 0.5.0 release, see:

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

Libgee provides the following interfaces:

    * Iterable
          o Collection
                + List
                + Set
                + MultiSet
                + Queue
                      # Deque
    * Iterator
    * Map
    * MultiMap

The ArrayList, 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.

More information about Vala is available at


Didier 'Ptitjes' Villevalois

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]