Goffice is a set of document centric components for GLib and GTK+.
There are common operations for document centric applications that are
conceptually simple, but complex to implement fully.
- plugins
- load/save documents
- undo/redo
Goffice provides a single library for performing such operations.
This library defines an Interpreter monad. It allows to load Haskell
modules, browse them, type-check and evaluate strings with Haskell
expressions and even coerce them into values. The library is
thread-safe and type-safe (even the coercion of expressions to values).
It is, essentially, a huge subset of the GHC API wrapped in a simpler
API.
Support code for reading and manipulating hashed file storage (where
each file and directory is associated with a cryptographic hash, for
corruption-resistant storage and fast comparisons).
The supported storage formats include darcs hashed pristine, a plain
filesystem tree and an indexed plain tree (where the index maintains
hashes of the plain files and directories).
Hspec is a testing framework for Haskell. It is inspired by the Ruby
library RSpec. Some of Hspec's distinctive features are:
* a friendly DSL for defining tests
* integration with QuickCheck, SmallCheck, and HUnit
* parallel test execution
* automatic discovery of test files
This package allows simple reflection of expressions containing variables.
Reflection here means that a Haskell expression is turned into a string.
The primary aim of this package is teaching and understanding; there are
no options for manipulating the reflected expressions beyond showing them.
Jsonnet is a domain specific configuration language that helps you define JSON
data. Jsonnet lets you compute fragments of JSON within the structure, bringing
the same benefit to structured data that templating languages bring to plain
text. The example below illustrates a few features -- referring to another part
of the structure, overriding object fields, and string operations.
JSMin is a filter which removes comments and unnecessary whitespace from
JavaScript files. It typically reduces file size by half, resulting in faster
downloads. It also encourages a more expressive programming style because it
eliminates the download cost of clean, literate self-documentation.
Click is a Python package for creating beautiful command line interfaces
in a composable way with as little code as necessary. It's the "Command
Line Interface Creation Kit". It's highly configurable but comes with
sensible defaults out of the box.
libgdata is a GLib-based library for accessing online service APIs using the
GData protocol - most notably, Google's services. It provides APIs to access
the common Google services, and has full asynchronous support.
A link with more information about the GData protocol is available on the
website.
libgit2-glib is a glib wrapper library around the libgit2 git access library.
libgit2 only implements the core plumbing functions, not really the higher
level porcelain stuff. For a primer on Git Internals that you will need to know
to work with Git at this level, check out [Chapter 9][pg] of the Pro Git book.