Semantic search

Jump to: navigation, search

Edit query Show embed code

The query [[Interface::library]] was answered by the SMWSQLStore3 in 0.0310 seconds.

Results 11 – 260    (Previous 250 | Next 250)   (20 | 50 | 100 | 250 | 500)   (JSON | CSV | RSS | RDF)

AVbin is a thin wrapper around FFmpeg, providing binary compatibility for applications and languages that need it. FFmpeg is a collection of audio and video codecs widely used in projects such as mplayer, xine, gstreamer and VLC. It is under continuous development; so much so that its developers rarely provide a release, and SVN snapshots of the library must be statically linked to avoid version incompatibilities. AVbin allows programs that require dynamic linkage to use FFmpeg. It does this by providing:
  • an accurate version number within the shared library, allowing applications to select the appropriate data structures and functions to use at runtime, and
  • a simplified interface with an unchanging ABI to the most common decoding functionality within FFmpeg.
  • AVbin is distributed as a single dynamic library (.so on GNU/Linux, .dylib on Mac OS X, and .dll on Windows) that depends on no other files or installations. This eliminates the many complexities of building FFmpeg on platforms other than GNU/Linux; however you can still build it from source if you prefer.
'Aalib' is a low level gfx library that works on any kind of terminal. It does not require graphics devices (in fact, no graphical output is possible), and is particularly useful for those with older hardware who do not want to worry about overloading their systems with graphical applications.
'abclock' gives a spatial representation of time. It isn't tied to the design of a mechanical clock, but instead uses the natural properties of bitmaps: straight lines and rectangles. The clock uses ordinary hours and minutes. Placement and movement of objects is analogous to mechanical clocks. Time has a symmetrical property that is reflected in the way time changes in this clock. It is clear and exact up to parts of minutes, even when the bitmap is very small.
Achievo ATK
Achievo ATK is an object oriented Web-application Framework, written in PHP. It is targeted at developers who wish to focus on business logic, instead of coding HTML. Where other application frameworks mainly provide a large set of utility classes, ATK provides a complete framework that requires only small amounts of code to get usable applications, while maintaining full flexibility. It is currently the back-end software for the 'achievo' project management/project tracking tool.
Ad-hoc Support Library
Ad-hoc Support Library (ASL) is a user-space library which provides an API to faciliate implementation of routing protocols for wireless ad-hoc networks in GNU/Linux.
Ada Components
A component library for the Ada language. The four main categories are data structures, math, Ada programming tools, and OS interface.
Ada Motif binding library
SERC's Ada/Motif is a complete binding to X Windows and OSF/Motif for the Ada programming language it was based in part upon the SAIC/Unisys (STARS) public-domain bindings it incorporates many of the bug fixes and additional capabilities beyond the public-domain releases in Ada/Motif. Most noteworthy are the capabilities included in Ada/Motif for Ada tasking, callback registration, memory leak detection/prevention and capabilities for developing customized widgets. Paramax/STARS considers Ada/Motif to be the commercial version of their STARS bindings, according to SERC.
'AdaSockets' is a library that lets you use sockets in Ada 95. It supports unicast and multicast sockets, and uses object oriented structures to ease sockets manipulation.
'AdaUnits' provides an implementation of dimensioned values for Ada. Unit checks are made at run-time, if not optimized out by the compiler. The package supports SI and irregular measurement units and shifted units (like degrees Celsius). Conversions from and back to strings are provided for all various irregular units.
Adns Heckert gnu.tiny.png
adns is a DNS resolver library for C (and C++) programs, and a collection of useful DNS lookup utilities. The C library, and the command line utilities, provide a convenient interface. adns is capable of doing DNS lookups in an asynchronous, event-driven, fashion.
Aften is a simple A/52 (AC-3) audio encoder based on the FFMpeg libraries. The name is an acronym for A/Fifty-Two ENcoder. It is also Danish and Norwegian word for 'evening'. It is able to create stereo and multi-channel AC3-compatible audio streams.
Supports A, AAAA, ANY, CNAME, MX, NAPTR, NS, PTR, SOA, SRV, and TXT DNS queries.
Supports WebSocket and can provide middlewares and pluggable routing for servers.
Airhook is a reliable data delivery protocol, like TCP. Unlike TCP, Airhook gracefully handles intermittent, unreliable, or delayed networks. Other features include session recovery, queue control, and delivery status notification. Airhook is useful for keeping connections running over bad wireless networks (like CDPD), intermittent dial-up connections, and any other network that doesn't work very well. The implementation includes a TCP proxy (so you can use HTTP, SSH, etc.) and a protocol library for applications that want more control (real-time media delivery, games, etc).
This package provides a functional, Ruby Domain-Specific Language (DSL) for casting, transforming and transposing objects. The project's README file provides the following explanation of the purpose of this library:


Casting complex objects from one type to another can be an uncomfortable process to express well. Objects that we use on a daily basis are not always in our control, and, even when they are, some don't lend themselves to simple construction. Remote service communication objects or complex data structures from libraries we use in our applications can result in large piles of casting code.

This circumstance often produces large swaths of procedural code, even if split up into separate function calls. This code can be not only difficult to understand, but difficult to test if an object requires a great deal of set up. Field or method assignments midway through can change and break the entire operation.

The goal of this project is to provide a method of defining easily digestible specifications for object translation that are also easily testable and changeable. The project focuses on writing specifications for transformations and not doing direct mutation in the recipes. The result is something that should seem somewhat functional, but also exceedingly separable.

AlgART are free software Java libraries, supporting generalized smart arrays and matrices with elements of any types (1 bit, 8/16/32/64-bit integers, 32/64-bit floating point values and any other Java types), including a wide set of of 2D-, 3D- and multidimensional image processing and other algorithms, working with arrays and matrices.

Main Features

  • The libraries use 63-bit addressing of array elements (all indexes and length are represented by 64-bit long type). So, it's theoretically possible to create and process arrays and matrices containing up to 2^63-1 (~10^19) elements of any primitive or non-primitive types, if OS and hardware can provide necessary amount of memory or disk space.
  • Memory model concept allows storing AlgART arrays in different schemes, from simple Java arrays to mapped disk files; all necessary data transfers are performed automatically while every access to an element or a block of elements.
  • Most of algorithms are based on wide usage of lazy evaluations. Typical operations, like elementwise summing or geometrical matrix transformations, are implemented via lazy views of the source array or matrix.
    • For example, you can take a multidimensional matrix, rotate it (or perform any other affine or projective transform), and then extract a submatrix from the result. All these operations will be performed virtually (not requiring time), and actual calculations will be performed only at the moment of accessing elements, usually while copying the resulting matrix to a newly created one. Moreover, in many cases the libraries will "understand" itself, that the user wants to perform rotation or another transform, and will split the matrix into suitable rectangular blocks (fitting in RAM) and choose the best algorithm for this task at the moment of copying operation.
  • The libraries contain a wide set of image processing algorithms over matrices: linear filtering, mathematical morphology, rank operations, spectral transformation (FFT), etc.
  • There is also skeletonization and measuring of binary images.
Allegro is multi-platform game programming library for C/C++ developers distributed freely, that provides many functions for graphics, sounds, player input (keyboard, mouse and joystick) and timers. It also provides fixed and floating point mathematical functions, 3d functions, file management functions, compressed datafile and a GUI. It can also be used for other types of multimedia programming.
Complete set of free CAD tools and portable libraries for VLSI design. It includes a VHDL compiler and simulator, logic synthesis tools, and automatic place and route tools. Advanced verification tools for functional abstraction and static timing analysis are part of the system. A complete set of portable CMOS libraries is provided, including a RAM generator, a ROM generator, and a data-path compiler.
'alogg' is a library which makes it easier to use Ogg/Vorbis streams with Allegro. It offers facilities to decode, stream, and encode Ogg/Vorbis streams, and integrates those facilities with Allegro's datafile and sample loading routines. 'alogg' comes with a sample player, streamer, and encoder based on Allegro's sound routines.
Alpy provides a Python binding to the C Allegro game programming library. This binding is mostly focused with providing a basic "raw" interface to the library, trying to preserve most of the Python API similar to the C version to ease the transition to C programmers.
Library for XML processing in Python, designed to balance the native idioms of Python with the native character of XML.
Anemone is a Ruby library that makes it quick and painless to write programs that spider a website. It provides a simple DSL for performing actions on every page of a site, skipping certain URLs, and calculating the shortest path to a given page on a site. The multi-threaded design makes Anemone fast. The API makes it simple. And the expressiveness of Ruby makes it powerful.
The AngelCode Scripting Library, or AngelScript as it is also known, is an extremely flexible cross-platform scripting library designed to allow applications to extend their functionality through external scripts. Featuring a syntax similar to C/C++, it has been designed from the beginning to be an easy to use component, both for the application programmer and the script writer.
AntTweakBar allows programmers to quickly add a light and intuitive graphical user interface into graphic programs to interactively tweak them. It is a small and easy to use C/C++ library that can be readily integrated into OpenGL and DirectX applications. It targets graphical programs that need an easy way to tweak parameters and see the result in real-time like 3D demos, light inline game editors, small 3D applications, prototypes, debug facilities of weighter graphical programs, etc. Programmers are not required to design the graphical interface by providing coordinates or by using a visual UI editor. Controls are automatically organized following an optional given hierarchy. In most cases, only one line of code is needed to add a new variable to a tweak bar. AntTweakBar can be easily integrated with your own windowing system or with existing toolkits. Examples of integration with GLFW, SDL, GLU are provided.
'Apophenia' is a statistical library for C. It provides functions on the same level as those of the typical stats package (OLS, probit, singular value decomposition, &c.) but doesn't tie the user to an ad hoc language or environment. It uses the GNU Scientific Library for number crunching and SQLite for data management, so the library itself focuses on model estimation and quickly processing data.
The AppTools project includes a set of packages that Enthought has found useful in creating a number of applications. They implement functionality that is commonly needed by many applications
  • enthought.appscripting: Framework for scripting applications.
  • Provides a plugin for displaying documents and examples and running demos in Envisage Workbench applications.
  • Provides an abstraction for files and folders in a file system.
  • enthought.naming: Manages naming contexts, supporting non-string data types and scoped preferences.
  • enthought.permissions: Supports limiting access to parts of an application unless the user is appropriately authorised (not full-blown security).
  • enthought.persistence: Supports pickling the state of a Python object to a dictionary, which can then be flexibly applied in restoring the state of the object.
  • enthought.preferences: Manages application preferences.
  • enthought.resource: Manages application resources such as images and sounds.
  • enthought.scripting: A framework for automatic recording of Python scripts.
  • enthought.sweet_pickle: Handles class-level versioning, to support loading of saved data that exist over several generations of internal class structures.
  • enthought.template: Supports creating templatizable object hierarchies.
  • enthought.type_manager: Manages type extensions, including factories to generate adapters, and hooks for methods and functions.
  • enthought.undo: Supports undoing and scripting application commands.
Argtable is a freely available C/C++ programmer's library for parsing the command line arguments. Having only a few functions and a simple set of rules, it is capable of handling most aspects of command line parsing and error reporting with a minimum of fuss.
Armadillo: C++ library
Armadillo is a C++ linear algebra library (matrix and vector maths) aiming towards a good balance between efficiency and ease of use while staying lean. This library is useful if C++ has been decided as the language of choice (due to speed and/or integration capabilities), rather than another language like Matlab ® or GNU Octave. Armadillo uses a delayed evaluation approach in order to combine several operations into one and reduce (or eliminate) the need for temporaries. This is accomplished through extensive use of recursive templates and template meta-programming.
Aspell Heckert gnu.tiny.png
GNU Aspell is a spell checker that can be used either as a library or as an independent spell checker. It does a much better job of coming up with possible suggestions than other English language spell checkers. Other technical enhancements over Ispell include shared memory for dictionaries and intelligent handling of personal dictionaries when more than one Aspell process is open.
Used in cases where part of the software being developed is time-sensitive, so that the code block doesn't wait too much time for certain event to complete.
'at-spi' is a part of the Gnome Accessibility Project. It provides a Service Provider Interface for the Assistive Technologies available on the GNOME platform, and a library against which applications can be linked.
Atomthreads is a free, lightweight, portable, real-time scheduler for embedded systems. It is targeted at systems that need only a scheduler and the usual RTOS primitives. No file system, IP stack or device drivers are included, but developers can bolt on their own as required. Atomthreads will always be a small number of C files which are easy to port to any platforms that require threading by adding a simple architecture-specific file.
aubio is a library for audio labeling. Its features include segmenting a sound file before each of its attacks, performing pitch detection, tapping the beat and producing midi streams from live audio. The name aubio comes from 'audio' with a typo: several transcription errors are likely to be found in the results too. The aim of this project is to provide these automatic labeling features to other audio softwares. Functions can be used off-line in sound editors and software samplers, or online in audio effects and virtual instruments.
Autotrace is a program which converts bitmap images to vector images. It can import images in BMP, TGA, PNM, PPM, PGM, PBM and those supported by ImageMagick, and can output Postscript, svg, xfig, swf, pstoedit, emf, dxf, cgm, mif, p2e and sk
Avl Heckert gnu.tiny.png
libavl is a balanced tree library that comes with full documentation. It includes unthreaded, right threaded, and fully threaded variants of AVL tree, as well as unthreaded red-black trees. It features self-test routines as well as insertion, deletion, tree count, tree copy, tree walking and traversal, search, and threading and unthreading routines. Each function has a comment describing its interface, and each step in the algoritms the program uses has a comment also. Each source code file includes a built-in test routine.
'B-Forms' is an object-oriented PHP library for developing Webform-based applications. It supports tabular forms with multiple records of the same type being edited simultaneously, and provides security mechanism against data tampering. The library provides two base layouts that cover the the vast majority of cases. Only in very tricky form layouts would you have to write HTML code to specify the form layout. It also automatically saves and restores hidden fields. 'B-Forms' divides a script into three logical areas: form definition, data management, and form presentation. Forms have a powerful block architecture, each block typically representing a different data object within the form. Each block can be used to edit several objects at once- the library handles record management.
The BLAS (Basic Linear Algebra Subprograms) are routines that provide standard building blocks for performing basic vector and matrix operations. The Level 1 BLAS perform scalar, vector and vector-vector operations, the Level 2 BLAS perform matrix-vector operations, and the Level 3 BLAS perform matrix-matrix operations. Because the BLAS are efficient, portable, and widely available, they are commonly used in the development of high quality linear algebra software, LAPACK for example.
BRL-CAD includes an interactive geometry editor, parallel ray-tracing support for rendering and geometric analysis, path-tracing for realistic image synthesis, network distributed framebuffer support, image-processing and signal-processing tools.
A collection of tools for internationalizing Python applications Babel is composed of two major parts:
  • tools to build and work with gettext message catalogs
  • a Python interface to the CLDR (Common Locale Data Repository), providing access to various locale display names, localized number and date formatting, etc.
Badger is a library used to generate badge sheets for events, given a PDF template and data for the badges.
Barcode Heckert gnu.tiny.png
GNU barcode is a tool to convert text strings to printed bars. It supports a variety of standard code to represent the strings and creates postscript output. Features include:
  • available as both a library and a command line frontend (so you can include barcode printing in your application)
  • supports UPC, EAN, ISBN, CODE39, and other encoding standards
  • Postscript and encapsulated postscript output (other backends can be added as needed)
  • Accepts sizes and positions as inches, millimeters, and centimeters
  • Can create tables of barcodes (to print labels on sticker pages)
Bcfg2 allows you to describe and deploy complex configurations across pools of GNU/Linux and Unix systems, leading to a consistent, reproducible, and verifiable description of your environment. Bcfg2's visualization and reporting tools aid in your day-to-day administrative tasks. Its unique analysis features help you cope with the ever-increasing complexity of your networks.
beanstalkc is a simple beanstalkd client library for Python. beanstalkd is a fast, distributed, in-memory workqueue service.
BeeCrypt is a cryptography library that contains highly optimized C and assembler implementations of many well-known algorithms including Blowfish, MD5, SHA-1, Diffie-Hellman, and ElGamal. Unlike some other crypto libraries, BeeCrypt is not designed to solve one specific problem, like file encryption, but to be a general purpose toolkit which can be used in a variety of applications. There are also no patent or royalty issues associated with BeeCrypt.
Bennu is a software library written in PHP that implements the functionality of the IETF iCalendar 2.0 specification (RFC 2445). Its purpose is to enable applications which have an interest in this format (e.g. calendaring, scheduler and organizer programs) to support iCalendar in an easy, powerful, and extensible way.
Based partly on Knuth's Seminumerical Algorithms and written in C, BigMath aims to be light-weight and fast. Its original implementation was for use within a kernel extension - thus size and speed were essential. BigMath supports only integer math, including add, sub, mul, div, mod, modpow, modinv, pow, gcd, factorial, radix conversion, scientific notation and various comparisons.
Bill's OpenGL Library
BOGL - an OpenGL scenegraph/renderer supporting modern hardware (vertex and pixel programs via Cg, buffer objects, etc), freetype fonts, XML resource files, bezier patches, state sorting, separate render and simulation threads.
Binary I O library
'libbinio' uses its own protocol to store and retrieve binary data portably. It uses an fprintf/fscanf interface, exporting eight functions: fputf, vfputf, fgetf, vfgetf, fwputf, vfwputf, fwgetf, and vfwgetf. Rather than using data types such as "16 bits", it uses standard C types and uses printf/scanf-style argument lists (it even uses GNU argument checking if available). It should be a drop-in replacement for printf/scanf and still work perfectly well. It aims to be portable to every C89-conforming implementation, but can use C99 and GNU extensions if available.
Bioinformatics Template Library
This library focuses on the data structures and algorithms used in bioinformatics and molecular modelling, following closely the approach of the Standard Template Library (STL) to implement efficient generic programming modules using compile time mechanisms. Although the BTL was designed with biomolecular applications in mind it contains classes of more general utility: for instance, the Matrix class could be used for matrix algebra in many contexts.
Biskit is a python library for structural bioinformatics research. It simplifies the analysis of macromolecular structures, protein complexes, and molecular dynamics trajectories and offers a platform for the rapid integration of external programs.
Bit Vector
Bit::Vector is a (stand-alone) C library and an object-oriented Perl module (with overloaded operators) which allows you to handle bit vectors, sets (of integers), "big integer arithmetic" (e.g. for cryptography), and boolean matrices (all of arbitrary size) very efficiently. The package also includes an object-oriented Perl module for accessing the C library from Perl (the library can also be used by itself, without Perl). Optionally, it features overloaded operators for maximum ease of use.
The bitap library is a clean implementation of regular expression (regex/grep) string matching using the bitap algorithm. Approximate (a.k.a. fuzzy) matching is allowed. This is the same algorithm as the one used in Glimpse and agrep, but it is much more complete with regard to regular expression syntax, and is much cleaner. It is quite fast compared to other greps due to the bitap algoritm and modern CPU architechture. Modifying code for special cases speeds things up even futher. Note that the complete 'search' string must be matched by the pattern. If you want to search for substrings of the search string, prefix and postfix the pattern with '.*'.
BitPacket is a Python module to represent bit field structures in an easy object-oriented way. BitPacket provides three classes: BitField, BitStructure and BitVariableStructure which represent simple bit fields, and fixed and variable structures of bit fields respectively. BitStructure and BitVariableStructure are BitField themselves and all of them can be used together in order to build packets. That is, we can add any BitField subclass into a BitStructure or BitVariableStructure.
bitstring is a pure Python module designed to help make the creation and analysis of binary data as simple and natural as possible. BitStrings can be constructed from integers (big and little endian), hex, octal, binary, strings or files. They can be sliced, joined, reversed, inserted into, overwritten, etc. with simple functions or slice notation. They can also be read from, searched and replaced, and navigated in, similar to a file or stream.
Bitwise enums
A very simple, 0-overhead, and yet type-safe 1-file library for doing bitwise operations between masks represented by enums. Please note: This library has been subsumed into MiLi and is no longer being maintained individually.
'blib' is the Blinkenlights Library, a programming library that gives you a kick start into development with Blinkenlights/Arcade. 'blib' also provides the Game API with which games for Arcade can be developed. 'blib' provides functions to read and write BLM, BML, and MNG animations, and to receive and send the Blinkenlights protocol.
Blip Buffer
Blip_Buffer implements efficient band-limited sound synthesis buffers, allowing high-quality emulation of video game sound chips. After setting the source clock rate and output sampling rate, waveforms are generated by specifying the time points where amplitude changes occur. Treble and bass adjustments are also supported. Many examples are included that show basic waveform generation, sample buffering schemes, and more advanced topics. They can be made to write output to a wave sound file, or optionally use the SDL multimedia library for real-time playback, waveform display, and mouse control of parameters.
The BlockCanvas project provides a visual environment for creating simulation experiments, where function and data are separated. Thus, you can define your simulation algorithm by visually connecting function blocks into a data flow network, and then run it with various data sets (known as "contexts"); likewise, you can use the same context in a different functional simulation. The project provides support for plotting, function searching and inspection, and optimization. It includes a stand-alone application that demonstrates the block-canvas environment, but the same functionality can be incorporated into other applications. The BlockCanvas project relies on included libraries that allow multiple data sets using Numeric arrays to be incorporated in a Traits-based model in a way that is simple, fast, efficient, and consistent.
Boehm garbage collector
A conservative garbage collector which can be used as a garbage collecting replacement for C malloc or C++ new and as a malloc leak detector.
BOND (building object network databases) is a rapid application development tool which allows you to develop GUI front ends to PostgreSQL databases. It uses XML to define widget layout and how to obtain information from databases. This project is designed to simplify the process of developing database applications for GTK.
Booleano is an interpreter of boolean expressions, a library to define and run filters available as text (e.g., in a natural language) or in Python code. In order to handle text-based filters, Booleano ships with a fully-featured parser whose grammar is adaptive: Its properties can be overridden using simple configuration directives.
Boost Numeric Bindings
Boost Bindings is a bindings library (not just) for Boost.Ublas. It offers an easy way of calling BLAS, LAPACK, UMFPACK, MUMPS and many other mature legacy numerical codes from within C++.
Bootstrap is a mobile-first, responsive Web front-end framework. It is a very popular framework made by Twitter, and can be easily themed and customized.
Botan (formerly OpenCL) is a library of cryptographic algorithms. It includes a wide selection of block and stream ciphers, public key algorithms, hash functions, and message authentication codes, plus a high level filter-based interface. The home page has a list of supported algorithms.
BotNet is a library written in C, intended to assist in development of an IRC bot (or even an IRC client). It provides an easy-to-use model of communication with the IRC server by giving you string-sending functions and by returning messages from the IRC server into events to your application's main(). It also contains functions for easy DCC CHAT and SEND connections and an excess flood protection mechanism.
BUGS is the Big and Useful Great Security key encryption algorithm and applications. It is easy to use, and includes sample applications and documentation. The cryptography library can also be used with your own programs. Features include:
  • Private key algorithm
  • Dynamic cryptography algorithm
  • Source code can be made public without making the algorithm weak
  • Infinite key lengths
  • Bilateral bits swwapping with various windows
  • Bilateral Pseudo randomly binary operations
  • Random number added to key
  • Random number generator using the ISAAC algorithm
  • Possibility of generating your own RNG seed
  • Five different cryptography levels, for the best possible
  • combination of efficiency and speed
  • Seed and shuffle functions
  • A clear text can be crypted using its own data
  • Two methods of execution: direct disk access or memory cache
  • Strong key generator
C++ Sockets
This is a GPL licensed C++ class library wrapping the Berkeley sockets C API. It treats one socket as one object. KThis is how the Socket class was born. This class, in itself, has all the functions needed for address translation (hostname to ip, ip to hostname etc). It owns the file descriptor / SOCKET handle. But it can't do anything. Code for actually doing something with the socket is implemented in other, Socket derived classes.
'c-ares' is a C library that resolves names asynchronously. It is meant for applications that perform DNS queries without blocking or multiple DNS queries in parallel (ie servers that communicate with multiple clients and programs with GUIs).
c2lib is a library of basic tools for use by C programmers. It contains features heavily influenced by both Perl's string handling and C++'s Standard Template Library (STL). Its goal is to provide some of the advantages of Perl with only around a factor of 2-3 code-size expansion, while retaining most of the efficiency advantages of C and remaining compatible with existing libc functions.
Read and write cdb ("constant database") files. Cdblib contains classes to read and write cdb ("constant database") files. Cdb files map string keys to string values with very fast record lookups. Cdblib also allows for in-memory indexes to enable even faster lookups.
Convenient and reliable way of calling C code from Python. The aim of this project is to provide a convenient and reliable way of calling C code from Python. It keeps Python logic in Python, and minimises the C required. It is able to work at either the C API or ABI level, unlike most other approaches, that only support the ABI level.
The goal of the CGAL Project is to provide easy access to efficient and reliable geometric algorithms in the form of a C++ library. CGAL is used in various areas needing geometric computation, such as: computer graphics, scientific visualization, computer aided design and modeling, geographic information systems, molecular biology, medical imaging, robotics and motion planning, mesh generation, numerical methods...
CGAL offers data structures and algorithms like triangulations (2D constrained triangulations and Delaunay triangulations in 2D and 3D), Voronoi diagrams (for 2D and 3D points, 2D additively weighted Voronoi diagrams, and segment Voronoi diagrams), Boolean operations on polygons and polyhedra, arrangements of curves and their applications (2D and 3D envelopes, Minkowski sums) mesh generation (2D Delaunay mesh generation and 3D surface mesh generation, skin surfaces), geometry processing (surface mesh simplification, subdivision and parameterization, as well as estimation of local differential properties, and approximation of ridges and umbilics), alpha shapes, convex hull algorithms (in 2D, 3D and dD), operations on polygons (straight skeleton and offset polygon), search structures (kd trees for nearest neighbor search, and range and segment trees), interpolation (natural neighbor interpolation and placement of streamlines), shape analysis, fitting, and distances (smallest enclosing sphere of points or spheres, smallest enclosing ellipsoid of points, principal component analysis), and kinetic data structures. All these data structures and algorithms operate on geometric objects like points and segments, and perform geometric tests on them. These objects and predicates are regrouped in CGAL Kernels.
CGKit (Python Computer Graphics Kit)
The Python Computer Graphics Kit is a collection of Python modules that contain the basic types and functions to be able to create 3D computer graphics images (focusing on Pixar's RenderMan interface).
The CImg (Cool Image) Library is a C++ toolkit that provides simple classes and functions for loading, saving, processing and displaying images in your own C++ code. It contains useful image processing algorithms for loading/saving, resizing/rotating, filtering, object drawing (text, lines, faces, ellipses,..), and more. Images are instancied by a class able to represent images up to 4-dimension wide (from 1-D scalar signals to 3-D volumes of vector-valued pixels), with template pixel types. The package compiles it with only the standard C libraries.
CLN is a C++ class library for numbers: integers, rational, float, complex, modular integer. It implements elementary, logical, transcendental functions. Unlimited precision, 100 million digits are no problem. Easy to use because of algebraic syntax and automatic memory management.
CMUSphinx- base
Sphinx is a speaker-independent large vocabulary continuous speech recognizer. It is also a collection of free and open source tools and resources that allows researchers and developers to build speech recognition systems. The packages that the CMU Sphinx Group is releasing are a set of reasonably mature, world-class speech components that provide a basic level of technology to anyone interested in creating speech-using applications without the once-prohibitive initial investment cost in research and development; the same components are open to peer review by all researchers in the field, and are used for linguistic research as well.
CUnit is a light-weight library that allows programmers to test their C code. Test results can be browsed in multiple formats or built-in interfaces.
CWXML is a C library for parsing and generating XML and BXML formats with a straightforward API. Initial testing indicates that it is 3 or more times faster than other popular libraries such as expat and libxml2 at parsing XML and much faster again with BXML (a free, patent-unencumbered binary-encoding format for XML data that is a replacement for an XML file that mirrors the XML markup structures in a way similar to the in-memory representations of many parser libraries).
Cairo is a 2D graphics library with support for multiple output devices. Currently supported output targets include the X Window System (via both Xlib and XCB), Quartz, Win32, image buffers, PostScript, PDF, and SVG file output. Experimental backends include OpenGL, BeOS, OS/2, and DirectFB. Cairo is designed to produce consistent output on all output media while taking advantage of display hardware acceleration when available (eg. through the X Render Extension). The cairo API provides operations similar to the drawing operators of PostScript and PDF. Operations in cairo including stroking and filling cubic Bézier splines, transforming and compositing translucent images, and antialiased text rendering. All drawing operations can be transformed by any affine transformation (scale, rotation, shear, etc.) Cairo is implemented as a library written in the C programming language, but bindings are available for several different programming languages.
'CamlTemplate' is a small template processor library for Objective Caml. It can be used to generate Web pages, scripts, SQL queries, XML documents, and other sorts of text files. It provides a versatile, easy-to-learn template syntax that supports common scripting-language constructs, while encouraging a separation between presentation logic and application logic. The supported Caml data structures accomodate lists, tables, and trees of items in a straightforward manner. CamlTemplate works well with mod_caml, supports any ASCII-compatible encoding, including UTF-8, and includes optional support for multithreading.
carrot is an AMQP messaging queue framework. AMQP is the Advanced Message Queuing Protocol, an open standard protocol for message orientation, queuing, routing, reliability and security. The aim of carrot is to make messaging in Python as easy as possible by providing a high-level interface for producing and consuming messages. At the same time it is a goal to re-use what is already available as much as possible. carrot has pluggable messaging back-ends, so it is possible to support several messaging systems. At the time of release, the py-amqplib based backend is considered suitable for production use. Several AMQP message broker implementations exists, including RabbitMQ, ZeroMQ and Apache ActiveMQ. You'll need to have one of these installed, personally we've been using RabbitMQ. Before you start playing with carrot, you should probably read up on AMQP, and you could start with the excellent article about using RabbitMQ under Python, Rabbits and warrens. For more detailed information, you can refer to the Wikipedia article about AMQP.
Castle Game Engine
Castle Game Engine is a cross-platform 3D and 2D game engine for Object Pascal (FPC and Lazarus). - It supports many formats for game assets, including X3D, VRML, Collada, Spine JSON, MD3 and others. - Many graphic effects are possible, including bump mapping, shadows, shaders, mirrors, screen effects. - Animation, collision detection, 3D sound and more features are available. - An extensible system of 3D objects can be used, with out-of-the-box levels, items, intelligent creatures and more. - The engine is portable -- for desktop, mobile, web plugin. The engine is also used to develop view3dscene - a full-featured X3D / VRML browser and a viewer for many other 3D and 2D game formats.
Cbase formerly known as CFL (C Foundation Library) is a C library that simplifies systems software development on *nix systems. It includes functions for memory management, string parsing, sub-process execution, filesystem traversal, I/O, interfaces to IPC mechanisms including pseudo-terminals, shared memory, semaphores, and other facilities. It also has implementations of common dynamic data structures like linked lists, queues, stacks, and hash tables, a real-time scheduler similar to 'cron', and high-level APIs to Berkeley sockets and other networking functions. Full documentation is included. This package was formerly known as the Ping Utility Library.
Ccaudio Heckert gnu.tiny.png
GNU ccAudio is a stand-alone C++ class library and newly designated GNU package for manipulating audio data, whether on disk or in memory. GNU ccAudio offers the ability to work with audio file formats on disk by treating audio data as sequenced arrays of sample data rather than as arbitrary octets as some audio file manipulation libraries do. In addition to being audio content aware, GNU ccAudio allows header manipulation for setting things like annotation fields. GNU ccAudio is also endian aware and highly portable to both posix and win32 based systems. GNU ccAudio also offers basic audio signal processing including tone data set generation and pluggable codec operations. In the future we will provide loadable free software audio codec modules for many common audio encoding formats where not patent encumbered.
'ccl' is the 'customizable configuration library': a collection of functions for application programmers who want to interface with user-editable configuration files containing key/value pairs. The comment, key/value, and string literal delimiters can be programatically specified at runtime. 'ccl' is designed to be simple and portable; it has a small interface consisting of five functions. It uses avl's implemenation of binary search trees for backend storage.
The CDAY Calendar Almanac displays historical anniversaries such as birthdays and general events. It displays the equivalent date in multiple calendar systems, including Hebrew, Julian, JDNs, Great Underground Empire (Zork), and Shire (Lord of the Rings). Separate command line and Web-based versions are available, along with a free library of thousands of events.
Renamed jwcgi library to ceegeye, ceegeye is a C++ library for creating CGI (Common Gateway Interface) programs, xhtml bindings, javascript helpers, etc. Comes with several example programs to help you get acquainted with its usage. ceegeye is platform independent.
Cgi-util is a small C library for creating CGI programs for Websites. Functions are available for initialization (parsing), grabbing fields (by string, integer, double or boolean value), embedding HTML files, and more. It accepts both POST and GET request methods and has extensive error handling and support for cookies.
'cgipplib' is a small collection of support classes used to build CGI applications.
The cgixx C++ CGI class library is intended as a modern Common Gateway Interface library for ISO standard C++ compilers. It is not meant to generate complex HTML forms, but rather to ensure fast and reliable conversations between a Web server's CGI and your C++ code. 'cgixx' supports standard GET, POST, HEAD, and PUT CGI methods and cookies as defined in the version 1.1 specification.
Cheap Threads
Cheap Threads is a collection of routines for implementing synchronous threads. It includes a scheduler and a facility for passing messages among threads. Threads may run in a round robin or according to a priority scheme. Each thread must voluntarily relinquish control from time, via an ordinary function return, so that other threads can run. Since the threads are synchronous, i.e. they don't interrupt each other, they don't need to use semaphores, mutexes, critical sections, or other facilities to keep from interfering with each other. One version of Cheap Threads is designed for embedded systems.
Checker is a debugging tool suite which is used to find memory errors at runtime. 'Checker' can help find bugs that standard tools cannot always find. The best example is memory leaks. A memory leak is a zone of memory, allocated with malloc that is not used anymore. So the memory allocated is lost. This means you program needs more memory and runs slower, since your OS might have to start swapping. It detects bad memory accesses such as: reading uninitialized memory, writing in a freed zone, writing or reading outside of a memory block, and using NULL pointers. This is particularly useful for big programs with many functions. Checker maintains bitmaps to keep track of the status of each byte of memory. The status can be writable, readable, both, or none. When memory is allocated, the new memory becomes write-only: you are not allowed to read it because it has not been initialized. But when you you write to this new block, those bytes become readable and writable. When the block is freed, the bytes become unreadable and unwritable. Red zones are unreadable and unwritable memory, so that each access to a red zone produces a warning.
CHICKEN is a simple Scheme-to-C compiler supporting the language features as defined in the 'Revised^5 Report on Scheme'. It supports full tail-recursion and first-class continuations. The code it generates is quite portable; compiled files generated by it (including itself) should work with either no or minor changes on other systems. Linking to C modules and C library functions is straightforward, and compiled programs can easily be embedded into existing C code. The package includes many extra libraries.
Chipmunk is a fast 2D rigid body physics library written in C. Supports fast circle, segment, and convex polygon collisions.
  • Designed for 2D video games.
  • Circle, convex polygon, and line segment collision primitives.
  • Multiple collision primitives can be attached to the same rigid body.
  • Fast collision detection by using a spatial hash for the broad phase.
  • Extremely fast impulse solving by utilizing Erin Catto's contact persistence algorithm.
  • Support for collision callbacks based on object types.
  • Impulses applied to contact points can be retrieved after the impulse solver has finished.
  • Several kinds of joints available.
  • C99 implementation, no external dependencies.
  • Ruby extension available.
  • Simple, read the documentation.
Chomoko is a C++ Message-Queue Library Enterprise, Persistent, Message-Oriented Middleware Technical Aspects:
  • No dependencies
  • Cross-Platform
  • No Server Required
  • No Install Needed
  • Network-Based
ClanLib is a medium level development kit. At its lowest level, it provides a platform independent way of dealing with display, sound, input, networking, files, threading, etc. Beyond that ClanLib builds a generic game development framework, giving you easy handling of resources, network object replication, graphical user interfaces (GUI) with theme support, game scripting and more. It lets game developers avoid lowlevel trivials like setting up a directdraw window, sound mixing, reading image files, etc. All those things are simplified into object oriented classes and function calls. ClanLib uses a resource system to keep track of images, fonts, samples and music. It supports Targa, PCX, JPEG, PNG and BMP for images; wave files for sample; and Ogg Vorbis and MikMod for music. The resource system separates physical data formats from your code, and makes it easy to make themes and other plugins for your game. All classes in clanlib focus on making simple interfaces that are customizeable and expandable. This keeps your game code clean and simple, but still lets you to do advanced work. ClanLib is object oriented, which lets you operate at both high and low levels, minimizing redundant code but still letting you do things not supported by clanlib's high level APIs.
Classpath Heckert gnu.tiny.png
GNU Classpath (Essential Libraries for Java) is a project to create free core class libraries for use with virtual machines, compilers and tools for the Java programming language. It includes all native methods and core classes necessary for a completely functional Java runtime.s
Classpathx Heckert gnu.tiny.png
The GNU Classpath Extensions project, aka classpathx builds packages in the javax namespace. It is a companion project of the GNU Classpath project. Packages currently under development include javabeans activation framework, javabean infobus, java mail, GNU inetlib and a servlet API.
ClearSilver is a high-performance, powerful, and language-neutral HTML template system. It enforces a separation between presentation code and application logic which makes writing, debugging, and maintaining Web pages easier. It can be used from C/C++, Python, Perl, Java, and Ruby.
Cloudgizer is a tool for building web applications as Apache modules in C language enhanced with simple markup, with emphasis on performance, small-footprint, and more productive and safer programming in C. It combines the ease of scripting with the power of C, improving the resource utilization for cloud applications. The programmer writes simple markup language mixed with C code, which is then translated entirely into C code and compiled natively as Apache module. The resulting application is fast and takes less memory, as there are no interpreters or virtual machines. Features include easy markups to use MariaDB database, HTML input parameters, cookies, simpler outputting of web pages, files storage and manipulation, encryption, encoding, program execution, web calls, safer and easier string manipulation etc. - the list is too long to place in one sentence. Overall Cloudgizer does a lot of stuff for you that you'd otherwise need to do yourself. A memory garbage collection system and memory overwrite/underwrite detection comes in handy for program stability. The same goes for string and memory handling markups to help write applications that won't crash. Also included is an application packaging system and an automated application installer. This makes rollout of products and release cycle more manageable. Cloudgizer source files have extension .v. Cloudgizer pre-compiler (cld program) will turn your .v files into .c files, ready for compilation as pure C programs. Then, your program will be compiled and linked with Apache web server on RH/Centos systems. It links with Apache as an Apache module in a "prefork" configuration. It does the work of communicating with Apache, and it makes it easier to write high-performance/small-footprint web programs in C. Cloudgizer is not designed to be thread-safe as it works in a "prefork" configuration of Apache. You can also build command-line programs. The same program can serve as both command-line utility and a web program linked with Apache. Cloudgizer works with RedHat/Centos 7 operating system, Apache web server and mariaDB database.
CodePy is a C/C++ metaprogramming toolkit for Python. It handles two aspects of native-code metaprogramming:
  • Generating C/C++ source code.
  • Compiling this source code and dynamically loading it into the Python interpreter.
  • Both capabilities are meant to be used together, but also work on their own. In particular, the code generation facilities work well in conjunction with PyCuda. Dynamic compilation and linking are so far only supported in Linux with the GNU toolchain.
The CodeTools project includes packages that simplify meta-programming and help the programmer separate data from code in Python. This library contains classes that allow defining simple snippets, or "blocks", of Python code, analyze variable dependencies in the code block, and use these dependencies to construct or restrict an execution graph. These (restricted) code blocks can then be executed in any namespace. However, this project also provides a Traits-event-enhanced namespace, called a "context", which can be used in place of a vanilla namespace to allow actions to be performed whenever variables are assigned or retrieved from the namespace. This project is used as the foundation for the BlockCanvas project.
Use codebird-js to connect your website or JavaScript app with the Twitter API. Support for API 1.1 is baked in!
Coin is a platform-independent retained-mode 3D graphics library that uses scene-graph data structures to render real-time graphics+suitable for mostly all kinds of scientific and engineering visualization applications. It is fully compatible with Open Inventor 2.1. Coin is built on the OpenGL immediate-mode rendering library, adds abstractions for higher-level primitives, provides 3D interactivity, increases programmer convenience and productivity, and contains optimization features for fast +rendering that are transparent for the application programmer.
Commoncpp Heckert gnu.tiny.png
Common C++ is a C++ class library that abstracts various system services in a portable manner, thereby making the creation of portable applications much easier. It is portable code, with very low runtime overhead, that works well on a very wide range of target platforms and C++ compilers in everyday use. It includes the 'ape' project, which was formerly a separate package. Common C++ manages threads, synchronization, and network sockets by offering portable C++ classes that abstract these services, as well as supporting "serial" I/O, daemon specific event logging, object serialization (persistence), block/record/page/ oriented file I/O, and configuration file parsing. It also provides an inheritable class architecture for your application that exploits C++ as needed. There are two source trees: one for "POSIX" systems such as GNU/Linux and the Hurd, the other for the Windows API. This makes Common C++ portable at the source level, as the two trees implement a functionally similar class interface. Commoncpp also includes uCommon C++, a lightweight C++ library with features such as rtti and exception handling removed. It is intended for programs linking to C libraries and not the standard C++ library.
A generalized C++ I/O library that includes support for
  • BSD sockets (IPv4, IPv6, TCP, UDP)
  • OpenSSL secure streams
  • NSPR sockets
  • NSS secure streams
  • Kernel message queues
  • Files and pipes
  • Serial/tty
  • Gtkmm widgets
  • et. al.
'libConfuse' is a configuration file parser library. It supports sections and (lists of) values (strings, integers, floats, booleans or other sections), as well as other features (such as single/double-quoted strings, environment variable expansion, functions and nested include statements). It is easy to add configuration file capability to a program via a simple API. 'libConfuse' is not meant to be a configuration file parser library with a gazillion features; rather, it aims to be easy to use and quick to integrate with your code. 'libConfuse' was formerly called libcfg; the name was changed to avoid confusion with other similar libraries.
The coronet library implements an epoll and coroutine based library that allows for async operations over certain kinds of files (any file that supports poll(2) and the O_NONBLOCK fcntl(2) flag can be hosted - like sockets, pipes, ...). The coronet library uses the epoll support available in the 2.6 series of Linux kernels, and the libpcl library for coroutine support.
This is a Python library for CouchDB. It provides a convenient high level interface for the CouchDB server. This package currently encompasses four primary modules:
  • couchdb.client: the basic client library
  • management of design documents
  • couchdb.schema: a higher-lever API for mapping between CouchDB documents and Python objects
  • couchdb.view: a CouchDB view server that allows writing view functions in Python
A password checking library.
Creoleparser is a Python library for converting Creole wiki markup for output on the web. It is a full implementation of the Creole 1.0 specification and aims to follow the spec exactly.
Crypton is a software framework for remote storage, where the remote server has no knowledge of what is being stored. The content is encrypted client-side before it reaches the server. The framework is designed to be easy for application developers to use, without needing experience in encryption.
Partly implement the DOM Level 2 CSS interfaces. Additional some cssutils only convenience and (hopefully) more pythonic methods are integrated.
Transformation utilities for csv (or csv-like) generated rows. The standard csv module is very useful for parsing tabular data in CSV format. Typically though, one or more transformations need to be applied to the generated rows before being ready to be used; for instance "convert the 3rd column to int, the 5th to float and ignore all the rest". This module provides an easy way to specify such transformations upfront instead of coding them every time by hand. Two classes are currently available, SequenceTransformer and MappingTransformer, that represent each row as a list (like csv.reader) or dict (like csv.DictReader), respectively.
'CuTest' is a unit tesing library for the C language whose tests ensure that your code keeps working as you make small changes in it. They tell you which subroutine is broken, so you can more quickly figure out what's broken. You can also keep adding to your old code without worrying about bad interactions: if there is a bad interaction the tests will catch it. Finally, if every time a bug is reported you write a quick test, you will guarantee that the bug never reappears.
The Cuba library offers a choice of four independent routines for multidimensional numerical integration: Vegas, Suave, Divonne, and Cuhre. They work by very different methods, first three are Monte Carlo based. All four have a C/C++, Fortran interface and can integrate vector integrands. Their invocation is very similar, so it is easy to substitute one method by another for cross-checking. For further safeguarding, the output is supplemented by a chi-square probability which quantifies the reliability of the error estimate.
Curl is a command line tool and library for transferring data with URLs. The both do transfers using Internet protocols, including DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMTP, SMTPS, Telnet and TFTP. Curl also supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, proxies, HTTP/2, cookies, user+password authentication (Basic, Plain, Digest, CRAM-MD5, NTLM, Negotiate and Kerberos), file transfer resume, proxy tunneling and more.
'CwMtx' provides the matrix and vector operations used in engineering and science problems, particularly the quaternion class which implements quaternion math. Quaternions are useful for attitude determination in 3D space because they do not suffer from singularities. Furthermore, successive rotations and transformations of vectors can be accomplished by simple quaternion multiplication. Attitude dynamics can be expressed in a very compact form using quaternions.
DSSI is an API for audio plugins, with particular application for software synthesis plugins with native user interfaces. DSSI is an open specification developed for use in Linux audio applications, although it is portable to other platforms. It may be thought of as LADSPA-for-instruments, or something comparable to VSTi. This package contains the header file required for compiling hosts and plugins.
DUNE, the Distributed and Unified Numerics Environment is a modular toolbox for solving partial differential equations (PDEs) with grid-based methods. It supports the easy implementation of methods like Finite Elements (FE), Finite Volumes (FV), and also Finite Differences (FD). DUNE is free software licensed under the GPL (version 2) with a so called "runtime exception" (see license). This licence is similar to the one under which the libstdc++ libraries are distributed. Thus it is possible to use DUNE even in proprietary software. The underlying idea of DUNE is to create slim interfaces allowing an efficient use of legacy and/or new libraries. Modern C++ programming techniques enable very different implementations of the same concept (i.e. grids, solvers, ...) using a common interface at a very low overhead. Thus DUNE ensures efficiency in scientific computations and supports high-performance computing applications. DUNE is based on the following main principles:
  • Separation of data structures and algorithms by abstract interfaces.- This provides more functionality with less code and also ensures maintainability and extendability of the framework.
  • Efficient implementation of these interfaces using generic programming techniques.
  • Static polymorphism allows the compiler to do more optimizations, in particular function inlining, which in turn allows the interface to have very small functions (implemented by one or few machine instructions) without a severe performance penalty. In essence the algorithms are parametrized with a particular data structure and the interface is removed at compile time. Thus the resulting code is as efficient as if it would have been written for the special case.
  • Reuse of existing finite element packages with a large body of functionality.- In particular the finite element codes UG, ALBERTA, and ALUGrid have been adapted to the DUNE framework. Thus, parallel and adaptive meshes with multiple element types and refinement rules are available. All these packages can be linked together in one executable.
  • The framework consists of a number of modules which are downloadable as separate packages. The current core modules are:
  • dune-common- contains the basic classes used by all DUNE-modules. It provides some infrastructural classes for debugging and exception handling as well as a library to handle dense matrices and vectors.
  • dune-grid- is the most mature module. It defines nonconforming, hierarchically nested, multi-element-type, parallel grids in arbitrary space dimensions. Graphical output with several packages is available, e.g. file output to IBM data explorer and VTK (parallel XML format for unstructured grids). The graphics package Grape has been integrated in interactive mode.
  • dune-istl (Iterative Solver Template Library)- provides generic sparse matrix/vector classes and a variety of solvers based on these classes. A special feature is the use of templates to exploit the recursive block structure of finite element matrices at compile time. Available solvers include Krylov methods, (block-) incomplete decompositions and aggregation-based algebraic multigrid.
DUNE, the Distributed and Unified Numerics Environment is a modular toolbox for solving partial differential equations (PDEs) with grid-based methods. It supports the easy implementation of methods like Finite Elements (FE), Finite Volumes (FV), and also Finite Differences (FD). DUNE is free software licensed under the GPL (version 2) with a so called "runtime exception" (see license). This licence is similar to the one under which the libstdc++ libraries are distributed. Thus it is possible to use DUNE even in proprietary software. The underlying idea of DUNE is to create slim interfaces allowing an efficient use of legacy and/or new libraries. Modern C++ programming techniques enable very different implementations of the same concept (i.e. grids, solvers, ...) using a common interface at a very low overhead. Thus DUNE ensures efficiency in scientific computations and supports high-performance computing applications. DUNE is based on the following main principles:
  • Separation of data structures and algorithms by abstract interfaces.- This provides more functionality with less code and also ensures maintainability and extendability of the framework.
  • Efficient implementation of these interfaces using generic programming techniques.
  • Static polymorphism allows the compiler to do more optimizations, in particular function inlining, which in turn allows the interface to have very small functions (implemented by one or few machine instructions) without a severe performance penalty. In essence the algorithms are parametrized with a particular data structure and the interface is removed at compile time. Thus the resulting code is as efficient as if it would have been written for the special case.
  • Reuse of existing finite element packages with a large body of functionality.- In particular the finite element codes UG, ALBERTA, and ALUGrid have been adapted to the DUNE framework. Thus, parallel and adaptive meshes with multiple element types and refinement rules are available. All these packages can be linked together in one executable.
  • The framework consists of a number of modules which are downloadable as separate packages. The current core modules are:
  • dune-common- contains the basic classes used by all DUNE-modules. It provides some infrastructural classes for debugging and exception handling as well as a library to handle dense matrices and vectors.
  • dune-grid- is the most mature module. It defines nonconforming, hierarchically nested, multi-element-type, parallel grids in arbitrary space dimensions. Graphical output with several packages is available, e.g. file output to IBM data explorer and VTK (parallel XML format for unstructured grids). The graphics package Grape has been integrated in interactive mode.
  • dune-istl (Iterative Solver Template Library)- provides generic sparse matrix/vector classes and a variety of solvers based on these classes. A special feature is the use of templates to exploit the recursive block structure of finite element matrices at compile time. Available solvers include Krylov methods, (block-) incomplete decompositions and aggregation-based algebraic multigrid.
DUNE, the Distributed and Unified Numerics Environment is a modular toolbox for solving partial differential equations (PDEs) with grid-based methods. It supports the easy implementation of methods like Finite Elements (FE), Finite Volumes (FV), and also Finite Differences (FD). DUNE is free software licensed under the GPL (version 2) with a so called "runtime exception" (see license). This licence is similar to the one under which the libstdc++ libraries are distributed. Thus it is possible to use DUNE even in proprietary software. The underlying idea of DUNE is to create slim interfaces allowing an efficient use of legacy and/or new libraries. Modern C++ programming techniques enable very different implementations of the same concept (i.e. grids, solvers, ...) using a common interface at a very low overhead. Thus DUNE ensures efficiency in scientific computations and supports high-performance computing applications. DUNE is based on the following main principles:
  • Separation of data structures and algorithms by abstract interfaces.- This provides more functionality with less code and also ensures maintainability and extendability of the framework.
  • Efficient implementation of these interfaces using generic programming techniques.
  • Static polymorphism allows the compiler to do more optimizations, in particular function inlining, which in turn allows the interface to have very small functions (implemented by one or few machine instructions) without a severe performance penalty. In essence the algorithms are parametrized with a particular data structure and the interface is removed at compile time. Thus the resulting code is as efficient as if it would have been written for the special case.
  • Reuse of existing finite element packages with a large body of functionality.- In particular the finite element codes UG, ALBERTA, and ALUGrid have been adapted to the DUNE framework. Thus, parallel and adaptive meshes with multiple element types and refinement rules are available. All these packages can be linked together in one executable.
  • The framework consists of a number of modules which are downloadable as separate packages. The current core modules are:
  • dune-common- contains the basic classes used by all DUNE-modules. It provides some infrastructural classes for debugging and exception handling as well as a library to handle dense matrices and vectors.
  • dune-grid- is the most mature module. It defines nonconforming, hierarchically nested, multi-element-type, parallel grids in arbitrary space dimensions. Graphical output with several packages is available, e.g. file output to IBM data explorer and VTK (parallel XML format for unstructured grids). The graphics package Grape has been integrated in interactive mode.
  • dune-istl (Iterative Solver Template Library)- provides generic sparse matrix/vector classes and a variety of solvers based on these classes. A special feature is the use of templates to exploit the recursive block structure of finite element matrices at compile time. Available solvers include Krylov methods, (block-) incomplete decompositions and aggregation-based algebraic multigrid.
Dajax, the new easy to use ajax library for your django projects. All the power of ajax now available for django.
Database Template Library
The Database Template Library makes ODBC recordsets look just like STL containers. Users move through containers using standard STL iterators, and if they insert(), erase(), or replace() records in the containers, changes are automatically committed to the database. Since 'dtl' complies with STL iterator and container standards, users can plug abstractions into a range of STL algorithms for data storage, searching, and manipulation. The C++ reflection mechanism used to bind to database tables lets users add generic indexing and lookup properties to the containers without requiring special code. Since the code takes full advantage of the template mechanism, 'dtl' adds minimal overhead (compared with using raw ODBC calls).
DataparkSearch is an Internet and Intranet search engine tool. Key features:
  • Support for http, https, ftp, nntp and news URL schemes.
  • htdb virtual URL scheme support for indexing SQL databases.
  • text/html, text/xml, text/plain, audio/mpeg (MP3) and image/gif mime types built-in support.
  • External parsers support for other document types.
  • Ability to index multilangual sites using content negotiagion.
  • Searching all of the word forms using ispell affixes and dictionaries.
  • Stopwords and synonyms lists.
  • Boolean query language support.
  • Results sorting by relevancy, popularity rank, last modified time and by importance (a multiplication of relevancy and popularity rank).
  • Various character sets support.
  • Accent insensitive search.
  • Phrases segmenting for Chinese, Japanese, Korean, and Thai.
  • mod_dpsearch - search module for Apache web server.
  • Internationalized Domain Names support
Date Calc
The Date::Calc package consists of a C library and a Perl module (which uses the C library internally) for all kinds of date calculations based on the Gregorian calendar (the one used in all Western countries today), thereby complying with all relevant norms and standards: ISO/R 2015-1971, DIN 1355 and, to some extent, ISO 8601 (where applicable). The package is designed as a toolbox, not a ready-made application. It provides extensive documentation and examples of use, multi-language support, and special functions for business needs. The C library is specifically designed so that it can be used stand-alone, without Perl. Version 5.0 features date objects with overloaded operators, and a set of modules for calculations which take legal holidays into account (both in Perl only).
dbug is a macro-based library to see program flow, variables, timings, errors, warnings, etc.
Dead Souls
The Dead Souls MUD Library is a multi-user, text based adventure creation system. It lets you build adventure games which can be played over the Internet simultaneously by many people. It is for both experienced and beginner MUD admins. It includes an easy-to-use creation system.
'deal.II' is a software library that supports finite element computations on adaptive 1d, 2d, and 3d meshes. It comes with mesh handling, supports a large number of finite elements, can input and output in various formats, and has a large collection of support classes. The handling of different space dimensions is hidden behind C++ templates; this lets users treat problems in different space dimensions simultaneously within the same program, and to switch dimensions simply by recompilation. This means users can test their application in 2d, and then run production runs in 3d without having to debug the program again. It comes with full documentation of all APIs and 18 example programs showing how to build finite element programs from simple to very complex. The documentation now runs about 4000 pages.
Debea Database Library
Debea is an Object Relational Mapping library (ORM) for C++. It allows you to map C++ objects to relations in various SQL and file databases.
Decibel is a realtime communication framework based on Telepathy. It is meant to integrate VoIP, text chat, CTI (computer telephone integration), and similar applications into the user's desktop. Decibel consists of a desktop neutral policy daemon called Houston and desktop specific components for user interaction.
Deliantra Archetypes
Deliantra is a free software cooperative multiplayer RPG and adventure game, much similar in style (and setting) to nethack and moria, but is fully graphical and runs in realtime. It is set in a classical medieval environment with ubiquitous weapons and magic. What makes this game special is its depth and the sheer amount of maps to explore: The world is vast (multiple continents, over 4000 manually designed maps, hundreds of monsters and countless variations of generated content) and complex (16 unique races, 17 classes, 40 skills and hundreds of spells to choose from and combine with each other), so there is a lot to explore. The game play is open and sets very few limits on character development. And of course a lot of fun is to be had by playing cooperatively with others exploring the same world.
'detect' can be used in any program that needs hardware detection features such as configuration tools, installation programs, etc. You can use it to detect sound cards, CPUs, networking devices, webcams, joysticks, etc. It scans the IDE, PCI, ISA, USB, and SCSI busses to find hardware.
Developer's Image Library
Developer's Image Library (DevIL) is a cross-platform image library utilizing a simple syntax to load, save, convert, manipulate, filter, and display a variety of images with ease.
Device::Cdio is a interface to the GNU CD Input and Control library (libcdio) and it's ISO 9660 library (libiso9660) which are written in C. The library encapsulates CD-ROM reading and control and ISO 9660 handling. Perl programs wishing to be oblivious of the OS- and device-dependent properties of a CD-ROM can use this library.
DiVinE is an extensible system for distributed formal verification of concurrent systems. DiVinE as such can be viewed from two very different points of view: as a tool for distributed state space analysis and LTL model-checking, and as a development and fast prototyping environment.
DiaCanvas2 is a flexible diagramming widget based on GnomeCanvas. It uses its own constraint solver to maintain object relationships. It is Model/View/Controller-based and makes full use of GnomeCanvas' features, and can rotate/shear/resize/etc objects without recalculating shapes. It includes export facilities for both GnomePrint and SVG. Except for its look and feel, DiaCanvas is not related to the diagramming tool DIA.
Diet libc
Diet libc is a C library that is optimized for small size. It has has the bare minimum of files: the system call wrappers (including socket stuff) and malloc, etc. to create small statically linked binaries under Sparc, x86, PPC, ARM, MIPS, and Alpha-Linux.
The dimnum library contains templated C++ classes for storage and manipulation of dimensionful numbers, as encountered in physics and engineering. Since it uses templates, there is no size or speed penalty with respect to normal variables (depending on compiler optimisations).
'DirectFB' is a thin library that provides developers with hardware graphics acceleration, input device handling and abstraction, an integrated windowing system with support for translucent windows and multiple display layers on top of the framebuffer device. It is a complete hardware abstraction layer with software fallbacks for every graphics operation that is not supported by the underlying hardware.
Kraken is a virtual currency exchange, which also handles fiat (real) currency amounts. Subscribers to the service have an account with associated funds attached. The web site ( provides the user with an account overview (i.e. current balance), currency-pair exchange market status (history of prices and current order book), and the means to place entries on the order book; bids for a currency which can be immediately met with orders to sell the currency are automatically transacted, with the Kraken site taking a small and variable cut of the deal. Kraken also provide a stateless, web-based API by which all of the above actions can be undertaken programmatically. This is fully open, and described at the Kraken exchange web site. The DMBCS client-side C++ library implements all features of the API in a fully encapsulated C++ class, allowing users to implement algorithmic or robotic trading and dynamic exchange modelling.
Doodle quickly searches the documents on a computer, then builds an index using meta-data contained in the documents and allows fast searches on the resulting database. It supports approximate searches and full-text indexing, and comes with a library for accessing the doodle database and making it easy to integrate doodle's functionality into other applications or user interfaces. Users can keep the doodle database always up-to-date by updating the database on-the-fly by using 'doodled' and 'fam' whenever files on the system change. They can also build one doodle database for all users on a multi-user system without compromising user privacy.
The goal of the Duro project is to create a library which is as compliant with the proposed database language D as it is possible for a C library. This library is supposed to serve as a basis for a truly relational database management system (TRDBMS).
  • Tuples and tables (relvars).
  • Virtual tables (views).
  • Locking and nested transactions.
  • Duro tables are true sets -- uniqueness of tuples (rows) is always enforced. When creating real tables, at least one candidate key must be supplied. A candidate key may be empty.
  • User-defined types (including type constraints) and operators.
  • Declarative integrity.
  • Tcl interface, including support for relational expressions in Tutorial D syntax and operators implemented in Tcl ("stored procedures").
  • Simple GUI admin tool.
xs Duro is implemented on top of the Berkeley DB database library.
DynObj is a C/C++ library for cross compiler plugin libraries. It enables exposing and sharing run-time type information for C++ classes. This allows for loading binary plugins, and interacting with them in type safe ways:
  • A program working with sound can install additional effect filters while running.
  • A file manager can add plugins that handles new archive types.
  • Or it can add file popup menu handlers, or toolbar commands from plugins.
  • A text editor can add an editing mode (say Python editing) when the text editor is running.
  • So, plugins can make a static application a lot more dynamic. And DynObj does this in a generic, type safe way.
The Embedded HTTP Server (EHS) is a C++ class which can be inherited from to give HTTP server functionality to any class or application. It supports form data via POST or GET, and uploads via multi-part form attachments. It is useful for adding Web-based administration or statistics to any C++ program.
EMAN is a scientific image processing suite designed mainly to perform single-particle reconstructions of individual molecules. In this method, a transmission electron microscope is used to collect images of thousands of individual molecules. A complex series of algorithms then turns the individual 2D images into a high-resolution 3D structure of the molecule. The core of EMAN is a C++ based scientific image processing library.
EMI TOC Generator
eMI TOC Generator is a simple cross-platform library that dynamically generates a table of contents (TOC) in an HTML 5 page on rendering.
EMI User Controls Library
eMI User Controls Library is a library for the .NET Framework that provides a closeable tab item for the tab control of the Windows Presentation Framework (WPF) and a file system browser window.
EMI eMailer
eMI eMailer is a simple cross-platform object-oriented SMTP client implemented in PHP. It is primarily intended to transfer MIME e-mail messages generated by PHP on the same host as the SMTP server of the sender.
ETS- Enthought Tool Suite
The Enthought Tool Suite (ETS) is a collection of components developed by Enthought and our partners, which we use every day to construct custom scientific applications. This project is a "meta-project wrapper" that bundles up all the other projects in ETS.
eXcavator is an XML query processing class for PHP. Queries are constructed using a small query language, and query results are returned as either loosely formed or strict XML, in formats suitable for both text and HTML. One of eXcavator's most useful features is its facility to insert query results into user-defined templates, which allow for a free interpolation of user text and the data extracted by the query. It runs on top of XML_PullParser, but uses a completely independent API. However, it does offer opportunities to use the facilities of both packages side by side for programmers familiar with both.
EZwgl is a library of C functions, based on Xlib, whose purpose is to provide a tool that simplifies the task of graphical user interface (GUI) programming under the X window system environment. It is best for building a nice graphical user interface for an application, or for graphics programming under the X window system programming environment. EZWGL supports application resources, geometry management and drag-and-drop. It also includes about 100 OpenGL(TM)-like graphics functions and procedures that provides high level support for 3D graphics, including features like zbuffer, double-buffer and lighting.
'Easyval' is a basic implementation of interval arithmetic that uses hardware doubles as interval bounds. The first goal of this library is to respect the interval arithmetic containment criterium.
'ecc' is a class library for working with elliptic curves in cryptography. It consists of a set of TCP/IP client server examples for digital signature, encryption, and key exchange (such as Diffie-Hellman key exchangei, Massey Omura encryption, or DSA style signatures in the elliptic curve case).
Lightweight, super fast C/C++ library for sequence alignment using edit distance.
Elektra is a configuration management framework, it mounts configuration files into global keys database creating sort of virtual file system for easier access, changing and locating the configuration parameters. A wide range of plugins is available used to specify format (JSON, INI, XML and others), default settings , validation, etc. Use High-level API to elektrify your application for easier maintenance and generate type-safe configuration access code based on same specification used for validation. The core is the library implemented in C, bindings to another languages are provided.
Element Tree
The Element type is a simple but flexible container object, designed to store hierarchical data structures, such as simplified XML infosets, in memory. The element type can be described as a cross between a Python list and a Python dictionary. The ElementTree wrapper type adds code to load XML files as trees of Element objects, and save them back again. The Element type is available as a pure-Python implementation for Python 1.5.2 and later. A C implementation is also available, for use with CPython 2.1 and later. The core components of both libraries are also shipped with Python 2.5 and later.
Elib is designed as a collection of useful routines that don't have to be reinvented each time a new program is written. It contains code for container data structures, minibuffer and string handling functions missing in standard GNU Emacs, and routines for handling lists of cookies in a buffer.
  • Elib has been decommissioned as a separate package since its useful functions have long since been included in Emacs.
Emacs Common Lisp
Emacs Common Lisp is an implementation of Common Lisp, written in Emacs Lisp. The implementation provides a Common Lisp environment, separate from Emacs Lisp, running in Emacs. It does not intend to extend Emacs Lisp with Common Lisp functionality; however, Emacs Lisp functions can call Common Lisp functions and vice versa.
'Enca' (Extremely Naive Charset Analyser) detects the encoding of text files, based on knowledge of their language. It can also convert them to other encodings, letting you to recode files without knowing their current encoding. It supports most of Central and East European languages, and a few Unicode variants, independently of language.
Enlightenment is a themeable, fast, flexible, and powerful window manager that runs on everything from small mobile devices to powerful multi-core desktops. The Enlightenment Foundation Libraries (EFL) comprise a suite of libraries to help you create beautiful user interfaces.
* " This package has now been DEPRECATED since ETS 4.0. These functionalities have now been moved into other projects: 'etsconfig' is now part of traits, 'logger' is now part of apptools and 'util' is now part of pyface, and other packages. The etsproxy project allows you to run code that relied on this package or to convert source code to the new namespace with the 3to4 utility. " The EnthoughtBase project includes a few core packages that are used by many other projects in the Enthought Tool Suite:
  • etsconfig: Supports configuring settings that need to be shared across multiple projects or programs on the same system. Most significant of these is the GUI toolkit to be used. You can also configure locations for writing application data and user data, and the name of the company responsible for the software (which is used in the application and user data paths on some systems).
  • logger: Provides convenience functions for creating logging handlers.
  • util: Provides miscellaneous utility functions.
The purpose of this project was to develop a framework to make powerful, reliable software components that could be used whatever the target platform, the environment or the interface in use. The project source code currently contains useful applications and undocumented related libraries. Among all the software components available, there is, for example, MMUAq, an application which allows to handle several mail accounts as a global one. As each one, it is based on the Epeios framework.
'Ephemeris' reads, writes, and interpolates the JPL planetary ephemeris data that is the world standard planetary dataset. It should compile on any machine that uses gcc and supports IEEE floating point arithmetic, and has been tested under GNU/Linux. It uses an included library, gnulliver.c, that automatically handles integer and floating point Big-endian/Little-endian byte swapping to match Big-endian/network order on any computer. gnulliver.c can be used separately under the LGPL 2.1. This is a redesign of JPL's original FORTRAN code, available on JPL's FTP website (, with some added flexibility (including patching some inconsistencies in the original JPL data files). 'Ephemeris' is not associated with JPL or NASA, but just uses JPL's data.
'ePiX', a collection of batch programs, creates mathematically accurate fgures, plots, and animations containing LaTeX typography. The input syntac is easy to learn. The output -- vector image files or LaTeX picture-like environments -- is expressly designed for use with LaTeX.
'epto' is a library for industrial strength shell script programming with sh. It features convenient error handling, tracing, logging, option handling, documentation template, process level transaction safety (sort of), and more. It takes less than five minutes of learning to start using it.
ExactImage is a fast C++ image processing library. Unlike ImageMagick, it allows operation in several color spaces and bit depths natively, resulting in much lower memory and computational requirements. Some optimized algorithms operate in 1/20 of the time ImageMagick requires, and displaying large images can be as fast as 1/10 of the time the "display" program takes.
Experimental Robotics Framework
The Experimental Robotics Framework is a framework for developing composable applications. The idea is to develop software components that interact with others previously developed in other applications and other components developed by other researchers. It is not a new concept in the field, it is very similar to IBM eclipse but in this case for 3d applications and based on C++ instead of Java.
FAM, the File Alteration Monitor, provides an API which applications can use to be notified when specific files or directories are changed. It comes in two parts: fam, the daemon which listens for requests and delivers notification, and libfam, a library which client applications can use to communicate with fam
Fast Artificial Neural Network Library (fann) implements multi-layer feedforward networks that support both fully connected and sparsely connected networks. It supports execution in fixed point arithmetic to allow for fast execution on systems with no floating point processor. To overcome the problems of integer overflow, the library calculates a position of the decimal point after training and guarantees that integer overflow cannot occur with this decimal point. FANN is designed to be fast, versatile, and easy to use. Several benchmarks have been executed to test its performance. It is significantly faster than other libraries on systems without a floating point processor, and comparable to other highly optimized libraries on systems with a floating point processor.
The FINAL CUT is a C++ class library and widget toolkit with full mouse support for creating a text-based user interface. The library supports the programmer to develop an application for the text console. It allows the simultaneous handling of multiple text windows on the screen. The structure of the Qt framework was originally the inspiration for the C++ class design of FINAL CUT. It provides common controls like dialog boxes, push buttons, check boxes, radio buttons, input lines, list boxes, status bars and so on.
FLIF is a novel lossless image format which outperforms existing image formats in terms of compression ratio. It works well on any kind of image (photographic, line art, computer graphics, etc.) and also supports animations. FLIF images (or animations) can be progressively decoded, which makes the format potentially very suitable for responsive web design. This is the reference implementation of FLIF, which includes a command-line tool (flif) to convert between FLIF and PNG/PNM/PAM, a decoding library (libflif_dec), an encoding library (libflif_enc), some scripts (gif2flif, apng2flif, raw2flif, ...), and a simple image/animation viewer (viewflif).
'FXT' is a C++ library containing code for various fast orthogonal transforms and related algorithms for real, complex, n-dim fourier transforms, hartley transform, 1dim and 2dim, number theoretic transforms, walsh, haar, and wavelet transforms, convolution, correlation and power spectrum, mass-storage FFTs and convolution, fast multiplication routines, sine and cosine transforms, and z-transform.
The Farstream (formerly Farsight2) project is an effort to create a framework to deal with all known audio/video conferencing protocols. On one side it offers a generic API that makes it possible to write plugins for different streaming protocols, on the other side it offers an API for clients to use those plugins. This package provides Python bindings for Farstream.
Fast rendering toolkit
FRT is a toolkit for the generation of 3D animations using low-end machines (slow CPUs, low memory and small harddisks); of course, you can still use it with higher-end machines. The program is simple; the whole library is about 1000 lines of code. FRT has been designed with a *NIX-like operating system in mind: to avoid filling the harddisk, FRT establishes a master/slave relationship with mpeg_encode and renders frames on demand.
The aim is to make your application feel less laggy and more responsive while avoiding any interference with your current logic. FastClick is developed by FT Labs, part of the Financial Times.
C subroutine library for computing the Discrete Fourier Transform in one or more dimensions, of both real and complex data, and of arbitrary input size. The FFTW team's benchmarks, performed on a variety of platforms, show that FFTW's performance is typically superior to that of other publicly available FFT software. Moreover, FFTW's performance is portable: the program will perform well on most architectures without modification. However, FFTW appears to be the fastest program most of the time for in-order transforms, especially in the multi-dimensional and real-complex cases.
This is a candidate for deletion: Links broken. No links to page. Email to maintainer broken. Poppy-one (talk) 12:09, 30 July 2018 (EDT) 'libfiredns' is a library for handling asynchronous DNS requests. It provides a very simple interface for sending requests and parsing reponses, as well as low-timeout blocking functions. 'libfiredns' functions have much lower timeouts than the stock functions and tend to be faster because they send requests to all configured system nameservers at the same time.
This is a candidate for deletion: Links broken. No links to page. Email to maintainer broken. Poppy-one (talk) 12:18, 30 July 2018 (EDT) FireString is a library to make string handling easier in C. It provides replacements for some non-ANSI libc string functions, binary and length-safe string functions, and an interface for easy, intelligent configuration file parsing.
Firehose is a simple library which stripes multiple, inexpensive, network devices to provide very high speed data transfers. It will support any number of devices as long as each device has a TCP/IP layer.
This is a candidate for deletion: Links broken. No links to page. Email to maintainer broken. Poppy-one (talk) 03:41, 31 July 2018 (EDT) Flate is a template library used to deal with HTML code in CGI applications. It includes C and Perl support. All HTML code is put in an external file (the template) and printed using the library functions: variables, zones (parts to be displayed or not), and tables (parts to be displayed 0 to n times). You don't need to modify/recompile your application when modifying HTML code, printing order doesn't matter in your CGI code, and your CGI code is cleaner.
Fontutils Heckert gnu.tiny.png
The GNU Font Utilities (a.k.a. Fontutils) create fonts for use with Ghostscript or TeX. They also contain general conversion programs and other utilities. Some of the programs in Fontutils include bpltobzr, bzrto, charspace, fontconvert, gsrenderfont, imageto, imgrotate… The main purpose of these programs is to form a tool chain to generate Metafont or PostScript fonts from scanned images.
Form Alchemy
FormAlchemy eliminates boilerplate by autogenerating HTML input fields from a given model. FormAlchemy will try to figure out what kind of HTML code should be returned by introspecting the model's properties and generate ready-to-use HTML code that will fit the developer's application. Of course, FormAlchemy can't figure out everything, i.e, the developer might want to display only a few columns from the given model. Thus, FormAlchemy is also highly customizable.
The FreeLing package consists of a library providing language analysis services. FreeLing is designed to be used as an external library from any application requiring Natural Language Processing services (machine translators, intelligent web searchers, automatic summarizers, NL interfaces, etc.) Also, a simple main program is also provided as a basic interface to the library, which enables the user to analyze text files from the command line. Current version analyzes text in English, Spanish, Catalan, Galician, and Italian. New languages can be easily added if linguistic data are available.
  • Features:
  • Text tokenization
  • Sentence splitting.
  • Morphological analysis.
  • Named entity detection.
  • Date/number/currency/ratios recognition.
  • Physical magnitudes detection (speed, weight, temperature, density, etc.)
  • PoS tagging.
  • Named entity classification.
  • Chart-based shallow parsing.
  • WordNet based sense annotation
  • Dependency parsing.
Freecell Solver
Freecell Solver is a library written in C, that automatically solves layouts of Freecell and similar Solitaire variants (including Simple Simon boards). It is accompanied by several stand-alone command line programs.
Freeipmi Heckert gnu.tiny.png
FreeIPMI is a collection of in-band and out-of-band IPMI software in accordance with the IPMI v1.5/2.0 specification. These programs provide a set of interfaces for platform management. Common functionality includes sensor monitoring, system event monitoring, power control and serial-over-LAN.
ftputil is a high-level FTP client library for the Python programming language. ftputil implements a virtual file system for accessing FTP servers, that is, it can generate file-like objects for remote files. The library supports many functions similar to those in the os, os.path and shutil modules. ftputil has convenience functions for conditional uploads and downloads, and handles FTP clients and servers in different timezones.
Library for fuzzy sets, fuzzy graphs, and general fuzzy mathematics for Python.
'G-Wrap' is a tool (and Guile library) for generating function wrappers for inter-language calls. It currently supports generating Guile wrappers for C functions.
'GAIL' is a GTK+ module that provides accessibility support for GTK+ and libgnomecanvas by implementing AtkObjects for widgets in the two libraries. For example, if the module is loaded in a program which calls gtk_widget_get_accessible() for a GtkEntry, an instance of GailEntry is returned. This module is normally used with the atk-bridge GTK+ module from at-spi to allow an assistive technology, e.g a screenreader, to query or drive the program.
The Genetic Algorithm Utility Library (GAUL) is a programming library designed to assist in the development of code requiring genetic algorithms. The steady-state, generation based and the island model of evolution are supported, using the Darwinian, Lamarkian or Baldwininan evolutionary schemes. Standard mutation, crossover and selection operators are provided, while code hooks additionally allow custom operators. It provides data structures and functions for handling and manipulation of the data required for a genetic algorithm. Additional stochastic algorithms are provided for comparison to the genetic algorithms. Much of the functionality is also available through a simple S-Lang interface.
The Gnu Data Language (GDL) is a free alternative to the data visualization and analysis tool, called IDL (Interactive Data Language), frequently used by scientists. GDL and its library routines are designed as a tool for numerical data analysis and visualisation. GDL is dynamically typed, vectorized and has object-oriented programming capabilities. The library routines handle numerical calculations, data visualisation, signal/image processing, file input/output (incl. graphical and scientific data formats such as TIFF, PNG, netCDF, HDF etc) and interaction with host OS. Despite its name, GDL is not a GNU package.
The Generic Data Structures Library (GDSL) is a collection of routines for generic data structures manipulation. It is a portable and re-entrant library designed to let C programmers access common data structures with powerful algorithms and hidden implementation. Available structures are lists, queues, stacks, hash tables, binary trees, binary search trees, red-black trees, 2D arrays, and permutations.
GEGL is a graph-based image processing framework offering non-destructive image processing and compositing on large images. It is suitable for projects ranging from small one-off projects to interactive applications.
'GEOS' is a C++ implementation of the functions and predicates defined in the OpenGIS "Simple Features for SQL" specification. It includes high quality implementations of all important spatial relationships and operations, robust versions of all functions in the dimensionally extended 9 intersection predicate model, and implementations of the operators Buffer(), Union(), and Intersection() and all other SFSQL functions including Area(), Length(), Centroid(), etc.
GGZ Gaming Zone
The GGZ Gaming Zone develops a free gaming environment, based on a client-server architecture. More than 20 games are already available directly from the project, and integration into the major free desktops like KDE and GNOME is also being done. Player privacy, lack of advertisements and source code availability for game routine verification make this project a reliable platform for free games. Several independent game projects do already support playing over GGZ.
A programmer's library for random numbers. Also random number generator testing code. Intended for simulation, games and "Monte-Carlo" algorithms.
'GLTT' is a library that allows you to read and draw TrueType fonts in any OpenGL application. It supports bitmapped and anti-aliased font drawing as well as vectorized and polygonized drawing.
The Guarded Memory Move tool is useful for studying buffer overflows and catching them together with a "good" stack image. Once a stack overflow has been exploited, the back trace is already gone, as is information about parameters and local variables that are very important in understanding how the attacker is working out the exploit. The GMM library uses dynamic function call interception to catch the most common functions that attackers use to exploit stack buffers. It uses the LD_PRELOAD capability and offers two services: first, it avoids buffer overflow to allow the attacker to execute shell-code on your machine. Second, where an exploit is detected, it saves the stack content and triggers a segmentation fault. The resulting core dump has the necessary information to debug the exploit and fix the software.
GNUe Common Library
GNUe Common Library is the basis for the GNUe tools, such as Forms, Reports, Application Server, and Designer. It implements a database-abstraction layer that provides support for most major databases. A builtin XML-to-Object parser and Object-to-XML marshaller are used by Forms, Reports, and Designer to save and read Forms/Report definitions to and from an XML file. It also defines and implements an RPC abstraction layer that will allow server processes to define their public methods once and have them available XML-RPC and Pyro clients.
GNUe Forms
GNUe Forms is a generator for data aware user interfaces with support for different platforms and data sources. From an XML file containing both the layout definition and the program logic required, GNUe Forms generates native interactive data entry screens for a number of user interface frameworks, including GNOME, KDE, and a curses based text interface. GNUe Forms can interact with all data sources supported by GNUe Common, which includes GNUe AppServer, SQLite, MySQL, Firebird, PostgreSQL, MaxDB, or plain CSV files.
GOffice is a library of document-centric objects and utilities building on top of GLib and Gtk+ and used by software such as Gnumeric.
GnuPG Made Easy (GPGME) is a library designed to make access to GnuPG easier for applications. It provides a High-Level Crypto API for encryption, decryption, signing, signature verification and key management. Currently it uses GnuPG as its backend but the API isn't restricted to this engine; in fact, there is already a backend for CMS (S/MIME).
'GPSTk' is a set of both fundamental and advanced GPS processing algorithms. The library provides functions including RINEX I/O, ephemeris calculation, atmospheric refraction models, and positioning algorithms. The applications include cycle slip detection and removal, calculation of the Total Electron Content (TEC) of the ionosphere, bindings to 'octave', and RINEX file manipulation.
GRX is a 2D graphics library originally written for DJGPP. It supports DOS, Linux console (svgalib and framebuffer drivers), X11, and Win32 (using the Mingw compiler).
gSOAP is a toolkit for web services development. It includes utilities for conversion of C/C++ header files to SOAP stubs and generating C/C++ header files from WSDL. Also included are C/C++ development files needed for building SOAP client and server applications. gSOAP implements most current standards including SOAP 1.1/2, WSDL 1.1 and UDDI 2. It is compatible with many popular SOAP implmentations.
The GStreamer Pipeline Editor (gst-editor) is a graphical pipeline contruction and manipulation tool. Using the Gnome Canvas as the foundation, it lets users draw media pipelines very quickly. It's written as a library, so it can easily be embedded into applications, and reads and writes standard XML descriptions of pipelines. Additionally, it is threadsafe, supports rapid prototyping, has iterative, graphical bin sorting functionality, and is integrated with GStreamer's debugging subsystem.
The GNU Triangulated Surface Library (GTS) provides a set of useful functions to deal with 3D surfaces meshed with interconnected triangles. It features metric operations (area, volume, curvature, etc.), 2D Delaunay and constrained Delaunay triangulations, robust geometric predicates and set operations on surfaces (union, intersection, etc.), surface refinement and coarsening (multiresolution models), and bounding-boxes trees for collision/intersection detection.
The GUASI library implements a thread based generic asyncronous execution engine, to be used to give otherwise syncronous calls an asyncronous behaviour. It can be used to wrap any syncronous call, so that it can be scheduled for execution, and whose result can be fetched at later time (hence not blocking the submitter thread). The GUASI library can be used as complement to standard event retrieval interfaces like poll(2), select(2) or epoll(4).
Gama Heckert gnu.tiny.png
Gama is a program for the adjustment of geodetic networks. It is useful in measurements where Global Positioning System (GPS) is not available, such as underground. It features the ability to adjust in local Cartesian coordinates as well as partial support for adjustments in global coordinate systems. Network adjustment in a local coordinate system and its functionality is represented by the program gama-local, which adjusts geodetic (free) networks of observed distances, directions, angles, height differences, 3D vectors and observed coordinates (coordinates with given variance-covariance matrix). Global coordinate network adjustment model is based on geocentric coordinate system (adjustment model on ellipsoid). Its functionality is represented by the program gama-g3.
Gap buffers are efficient mutable sequences that are often used to store text in text editors. They utilize locality of modification to avoid copying large amounts of data and allocate extra elements to avoid memory allocation dominating performance.
GConf is a "registry" system, a library applications can use to store key-value pairs persistently. It's written for GNOME, but it does not require GNOME or even X to work. Use outside GNOME is encouraged and will be supported.
Gdome2, aka libgdome, is the DOM C library developed for the Gnome project (it can also be used stand-alone). The Document Object Model is a platform and language-neutral interface that lets programs and scripts dynamically access and update the content, structure and style of documents. A DOM implementation (also called a host implementation) takes a parsed XML or HTML document and makes it available for processing via the DOM interfaces. A browser contains a host implementation, for example. gdome2 currently supports the "Core", "XML", "Events" and "MutationEvents" modules.
Gearman client, worker, and server libraries for Python.
Gecode is an open, free, portable, accessible, and efficient environment for developing constraint-based systems and applications. It is written in C++.
GeniusTrader aims to be a full featured toolbox to create trading systems. Powerful systematic trading requires several things:
  • many indicators and corresponding signals
  • money management rules
    • deciding what is a reasonable amount of money to put on a single trade (to limit the risk associated to that trade)
    • combining different values within the portfolio (to limit the global risk)
  • flexibility to be able to test all
  • combinations with the above items
  • backtesting system with analysis of results
GeniusTrader already has support of most of this. GeniusTrader consists of a bunch of Perl modules associated to a few perl scripts.
Genshi is a Python library that provides an integrated set of components for parsing, generating, and processing HTML, XML or other textual content for output generation on the web. The main feature is a template language that is smart about markup: unlike conventional template languages that only deal with bytes and (if you're lucky) characters, Genshi knows the difference between tags, attributes, and actual text nodes, and uses that knowledge to your advantage.
Gettext Heckert gnu.tiny.png
Gettext is a package providing a framework for translating the textual output of programs into multiple languages. It provides translators with the means to create message catalogs, as well as an Emacs mode to work with them, and a runtime library to load translated messages from the catalogs. Nearly all GNU packages use Gettext.
GExiv2 is a GObject wrapper around the Exiv2 photo metadata library. It allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP metadata in photo and video files of various formats. This package contains the shared library.
Ghostscript Heckert gnu.tiny.png
Ghostscript is an interpreter for the PostScript language and the PDF file format. It also includes a C library that implements the graphics capabilities of the PostScript language. It supports a wide variety of output file formats and printers.
Giac/Xcas is a free computer algebra system. It has a compatibility mode for maple, mupad and the TI89. It is available as a standalone program (graphic or text interfaces) or as a C++ library.
giflib is a library for reading and writing gif images. It is API and ABI compatible with libungif which was in wide use while the LZW compression algorithm was patented.
GitPython is a python library used to interact with Git repositories. GitPython provides object model access to your git repository. Once you have created a repository object, you can traverse it to find parent commit(s), trees, blobs, etc. GitPython is a port of the grit library in Ruby created by Tom Preston-Werner and Chris Wanstrath.
GKSu is a library that provides a Gtk+ frontend to su and sudo. It supports login shells and preserving environment when acting as a su frontend. It is useful to menu items or other graphical programs that need to ask a user's password to run another program as another user.
Gleem Heckert gnu.tiny.png
Gleem (OpenGL Extremely-Easy-to-use Manipulators) is a library for Java and C++ offering a set of 3D widgets that support direct user interaction with a 3D scene. These widgets are used to translate along a line, translate in a plane, and do three-dimensional translation and rotation.
Glib Heckert gnu.tiny.png
GLib is the low-level core library that forms the basis for projects such as GTK+ and GNOME. It provides data structure handling for C, portability wrappers, and interfaces for such runtime functionality as an event loop, threads, dynamic loading, and an object system. GLib provides the core application building blocks for libraries and applications written in C. It provides the core object system used in GNOME, the main loop implementation, and a large set of utility functions for strings and common data structures.
Glpk Heckert gnu.tiny.png
GLPK is a C library for solving large-scale linear programming (LP), mixed integer programming (MIP), and other related problems. It supports the GNU MathProg modeling language, a subset of the AMPL language, and features a translator for the language. In addition to the C library, a stand-alone LP/MIP solver is included in the package.
GMime provides a core library and set of utilities which may be used for the creation and parsing of messages using the Multipurpose Internet Mail Extension (MIME).
Gmp Heckert gnu.tiny.png
GMP is a library for arbitrary precision arithmetic, operating on signed integers, rational numbers and floating point numbers. The precision is only limited by the available memory. The library is highly optimized, with a design focus on execution speed. It is aimed at use in, for example, cryptography and computational algebra.
Gnash Heckert gnu.tiny.png
Gnash is a GNU Flash movie player. Flash is an animation file format pioneered by Macromedia which continues to be supported by their successor company, Adobe. Flash has been extended to include audio and video content, and programs written in ActionScript, an ECMAScript-compatible language. Gnash is based on GameSWF, and supports most SWF v7 features and some SWF v8 and v9. Features:
  • Runs as a standalone application - Gnash can run standalone to play flash movies.
  • IceCat plugin - Gnash can also run as a plugin from within IceCat.
  • SWF v7 compliant - Gnash can play many current flash movies.
  • XML Message server - Gnash also supports an XML based message system as is documented in the Flash Format specification.
  • High Quality Output - Gnash uses OpenGL for rendering the graphics.
GNet is a simple network library. It is written in C, object-oriented, and built upon glib. It is meant to be small, fast, easy to use, and easy to port. The interface is similar to the interface for Java's network library. Features include:
  • TCP 'client' sockets
  • TCP 'server' sockets
  • v
  • USP
  • IP Multicast
  • Internet address abstraction
  • Non-blocking TCP sockets and address lookup
Gnome Application Library (gal)
Gal is the Gnome Application Library, a collection of widgets and other helper functions from Evolution and Gnumeric.
Gnome VFS
GnomeVFS is a library that allows applications to transparently access various types of filesystems through a uniform interface. GnomeVFS modules include support for things such as WebDAV, ftp, local filesystem, gzip, bzip2, cdda, and others. GNOME VFS is currently used as one of the foundations of the Nautilus file manager
Gnonlin is a library for creating non-linear video editors. It works together with the GStreamer multimedia framework to give developers a powerful and flexible set of tools for quickly assembling applications which need to handle non-linear video editing.
The GNU 3DKit is an object oriented graphics framework for creating 3D graphics applications in the Objective-C language. Its main application is to render 3D graphics in real-time on commodity hardware, using a scene graph architecture. It is based on OpenGL graphics library to achieve this goal. The GNU 3DKit was officially part of the GNU project as an extension to GNUStep .
Gnulib Heckert gnu.tiny.png
Gnulib is intended to be the canonical source for most of the important "portability" and/or common files for GNU projects. These are files intended to be shared at the source level; Gnulib is not a library meant to be installed and linked against. Unlike most projects, Gnulib does not normally generate a source tarball distribution; instead, developers should just grab modules directly from the repository. While portability across operating systems is not one of GNU's primary goals, it has helped introduce many people to the GNU system, and is worthwhile when it can be achieved at a low cost. This collection helps lower that cost.
Gnupg Heckert gnu.tiny.png
GnuPG is a complete implementation of the OpenPGP standard. It is used to encrypt and sign data and communication. It features powerful key management and the ability to access public key servers. This package, also known as GPG, is a command line tool with features for easy integration with other applications. A wealth of frontend applications and libraries are available.


Even if you have nothing to hide, using encryption helps protect the privacy of people you communicate with, and makes life difficult for bulk surveillance systems. If you do have something important to hide, you are in good company; GnuPG is one of the tools that Edward Snowden used to uncover the secrets of the NSA.

See also the Email Self-Defense site to learn how and why you should use GnuPG for your electronic communication.
Gnuprologjava Heckert gnu.tiny.png
"GNU Prolog for Java" is a library which is designed to embedd into Java applications which need Prolog to solve some tasks. The interpreter is intended for applications where Prolog performs combinatory search and Java does the rest. The library allows easy communication between Java and Prolog.
Gnurl Heckert gnu.tiny.png
Gnurl is a microfork of cURL, a command line tool for transferring data with URL syntax. While cURL supports many crypto backends, libgnurl only supports HTTP, HTTPS and GnuTLS.
Gnustep Heckert gnu.tiny.png
Provides an object oriented application development framework and tool set for use on a wide variety of platforms. It provides a generalized visual interface design and a cohesive user interface. It also uses a common imaging model called Display PostScript (based on PostScript) to do all its drawing, so the program is truly WYSIWYG. GNUstep is written in the Objective-C language, a simple yet powerful object-oriented language based on C that gives you the full power of an object-oriented language with exactly one syntax addition to C and a dozen or so additional keywords.
This is the back-end component for the GNUstep GUI Library. GNUstep is a cross-platform, object-oriented set of frameworks for desktop application development. The set of frameworks, based on Cocoa (previously OpenStep), enables developers to rapidly build sophisticated software by employing a large library of reusable software components. This GUI uses an abstraction layer to talk to the windowing system. It uses the GNUstep back library to handle all of the windowing-system-specific details. It currently works via a DPS emulation engine to emulate the DPS functions required by the front-end system. More recently, a back end based on Cairo was implemented. This is a high-performance 2D graphics library supporting vector and composing operations. Another back-end runs on top of the X Window System and uses only Xlib calls for graphics, but seems deprecated. (There is also a back end supporting the Windows GDI, allowing GNUstep applications to run on Windows)
The GNUstep Base Library is a library of general-purpose, non-graphical Objective C objects. For example, it includes classes for strings, object collections, byte streams, typed coders, invocations, notifications, notification dispatchers, moments in time, network ports, remote object messaging support (distributed objects), and event loops. It provides functionality that aims to implement the non-graphical portion of the Apple's Cocoa frameworks (the Foundation library) which came from the OpenStep standard.
The GNUstep GUI Library is an object-oriented application programming interface (API) for writing graphical applications. These classes include graphical objects such as buttons, text fields, popup lists, browser lists, and windows; there are also many associated classes for handling events, colors, fonts, pasteboards and images. It is based on Cocoa (previously OpenStep). The library calls methods of the display server, while gnustep-back translates those calls to native calls of the operating system.
Gnutls Heckert gnu.tiny.png
GnuTLS is a secure communications library implementing the SSL, TLS and DTLS protocols and technologies around them. It provides a simple C language application programming interface (API) to access the secure communications protocols as well as APIs to parse and write X.509, PKCS #12, and other required structures. The project strives to provide a secure communications back-end, simple to use and integrated with the rest of the base Linux libraries. A back-end designed to work and be secure out of the box, keeping the TLS and PKI complexity outside the applications.
go is a small shell command for changing directories quickly. Typically you have a set of directories that you work in. Typing out the names of those dirs in full can be tedious.
Goblin Graph Library
The GOBLIN project consists of a C++ class library for a large series of graph optimization problems, GOSH, an extension of the Tcl/Tk scripting language to graph objects, and GOBLET, a graphical user interface to the library functions. GOBLET includes a graph editor, but provides only basic graph layout methods.
GOffice is a GObject based C library. It provides easy API access to creating and manipulating graphs and canvases. It also includes a number of utilities and widgets that might be useful in office productivity software and similar. The GOffice code was originally a part of Gnumeric, but was split into a separate library in 2005. Today it is being used by projects such as Gnumeric, Gnucash, Abiword (optional), GChemUtils and more.
google-adwords-dumper is a program to fetch basic data of an adwords account and some relevant performance reports of the account. It also fetches the data of child accounts if the given account is a master account.
Grace Library
This is a candidate for deletion: Links broken. Email to maintainer broken. Poppy-one (talk) 14:34, 2 August 2018 (EDT) Grace is a C++ library/enhancement for creating multithreaded server applications. It delivers basic building blocks for stable, readable code and makes it easy to exchange data with other systems.
GrapeFruit is a pure Python module that let you easily manipulate and convert color information. Its Primary goal is to be natural and flexible. The following color systems are supported by GrapeFruit:
  • RGB (sRGB)
  • HSL
  • HSV
  • YIQ
  • YUV
  • CIE-LAB (with the illuminant you want)
  • CMY
  • CMYK
  • HTML/CSS color definition (#RRGGBB, #RGB or the X11 color name)
  • RYB (artistic color wheel)

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the page “GNU Free Documentation License”.

The copyright and license notices on this page only apply to the text on this page. Any software or copyright-licenses or other similar notices described in this text has its own copyright notice and license, which can usually be found in the distribution or license text itself.