ICI is a C-like, high level language originally developed by Tim Long
and placed into the public domain. ICI marries C's expression syntax,
control structures and overall feel, with a dynamic, garbage
collected, object-based, data model. Version 4 incorporates numerous
performance enhancements, refinements to existing features and new
features including native support for threads, a cleaner, more well
defined API for extension module authors and those embedding ICI
within other programs, and new documentation that is superior to
that provided in previous releases.
ICI is typically used as a scripting-like language in the fashion of
Perl, Python, Ruby, Lua, TCL and other such languages. ICI can be
called from C and the language itself can be extended allowing
applications to provide domain specific functions, types and
operators for use in their ICI programs. Embedding within applications
allows application authors to make use of ICI's efficient object
system which provides many useful facilities.
ICI is in the public domain, there is no copyright on it.
Hiredis is a minimalistic C client library for the Redis database.
It is minimalistic because it just adds minimal support for the protocol,
but at the same time it uses an high level printf-alike API in order to make
it much higher level than otherwise suggested by its minimal code base and
the lack of explicit bindings for every Redis command.
Apart from supporting sending commands and receiving replies, it comes with
a reply parser that is decoupled from the I/O layer. It is a stream parser
designed for easy reusability, which can for instance be used in higher
level language bindings for efficient reply parsing.
Hiredis only supports the binary-safe Redis protocol, so you can use it with
any Redis version >= 1.2.0.
The library comes with multiple APIs. There is the synchronous API, the
asynchronous API and the reply parsing API.
libasyncns is a C library for Linux/Unix for executing name service queries
asynchronously. It is an asynchronous wrapper around getaddrinfo(3),
getnameinfo(3), res_query(3) and res_search(3) from libc and libresolv.
In contrast to GNU's asynchronous name resolving API getaddrinfo_a(),
libasyncns does not make use of UNIX signals for reporting completion of name
queries. Instead, the API exports a standard UNIX file descriptor which may be
integerated cleanly into custom main loops.
In contrast to asynchronous DNS resolving libraries like libdenise, skadns,
adns, libasyncns is just an asynchronous wrapper around the libc's synchronous
getaddrinfo() API, which has the advantage of allowing name resolution using
techniques like Multicast DNS, LDAP or NIS using standard libc NSS (Name
Service Switch) modules. libasyncns is compatible with IPv6 if the underlying
libc is.
libasyncns is very tiny, consisting of just one header and one source file. It
has no dependencies besides libc.
libasyncns is a C library for Linux/Unix for executing name service queries
asynchronously. It is an asynchronous wrapper around getaddrinfo(3),
getnameinfo(3), res_query(3) and res_search(3) from libc and libresolv.
In contrast to GNU's asynchronous name resolving API getaddrinfo_a(),
libasyncns does not make use of UNIX signals for reporting completion of name
queries. Instead, the API exports a standard UNIX file descriptor which may be
integerated cleanly into custom main loops.
In contrast to asynchronous DNS resolving libraries like libdenise, skadns,
adns, libasyncns is just an asynchronous wrapper around the libc's synchronous
getaddrinfo() API, which has the advantage of allowing name resolution using
techniques like Multicast DNS, LDAP or NIS using standard libc NSS (Name
Service Switch) modules. libasyncns is compatible with IPv6 if the underlying
libc is.
libasyncns is very tiny, consisting of just one header and one source file. It
has no dependencies besides libc.
This module extends the functionality of Math::Symbolic by offering
facilities to compile symbolic math trees (formulas) to C code. It also
uses Inline::C to compile and link the generated C code at run-time, thus
allowing the user to do symbolic calculations in Perl with Math::Symbolic
and then use the results in a fast numeric environment.
This software generates code. Code generators are difficult to test, but
the first release of the module is now 1.5 years old and I haven't
received any bug reports, so I consider it somewhat stable now.
Please read the manpage of Math::Symbolic::Compiler which comes with the
Math::Symbolic distribution. Most of the gotchas involved with compiling
the functions to Perl subroutines also apply to this module which compiles
to C instead.
Alternatively, you can use the module not for faster calculations from
your Perl program, but to generate C code for you. I have used it to
generate an implementation for (many!) Zernike Polynomials for work in C.
Inspired by jMock, EasyMock, and Hamcrest, and designed with C++'s specifics
in mind, Google C++ Mocking Framework (or Google Mock for short) is a library
for writing and using C++ mock classes. Google Mock:
* lets you create mock classes trivially using simple macros,
* supports a rich set of matchers and actions,
* handles unordered, partially ordered, or completely ordered expectations,
* is extensible by users, and
* works on Linux, Windows, and Mac OS X.
SDLmm is a C++ glue for SDL, or the Simple DirectMedia Layer, which is a
generic API that provides low level access to audio, keyboard, mouse,
joystick, 3D hardware via OpenGL, and 2D framebuffer across multiple
platforms.
SDLmm aims to stay as close as possible to the C API while taking advantage
of native C++ features like object orientation. We will also aim at being
platform independent as much as possible.
Rugged is a Ruby bindings to the libgit2 linkable C Git library.
Libkpass is a from-scratch C implementation of reading and writing
KeePass 1.x format password databases.
avr-libc -- a C and math library for the Atmel AVR controller family
This library implements a subset of common C library functions, some
Atmel AVR specific additions (like handling AVR's IO facilities,
EEPROM etc.), as well as a 32-bit floating point math library (-lm).
Everything is designed and implemented to cooperate with avr-gcc and
avr-binutils.