skalibs: a C library for system programming
Keywords: skalibs package skarnet.org libraries public domain

Software
skarnet.org

# skalibs

## What is it ?

skalibs is a package centralizing the free software / open source C development files used for building all software at skarnet.org: it contains essentially general-purpose libraries. You will need to install skalibs if you plan to build skarnet.org software. The point is that you won't have to download and compile big libraries, and care about portability issues, everytime you need to build a package: do it only once.

skalibs can also be used as a sound basic start for C development. There are a lot of general-purpose libraries out there; but if your main goal is to produce small and secure C code with a focus on system programming, skalibs might be for you.

## Installation

### Requirements

- A Unix-like system, compliant with The Open Group Base Specifications Issue 7, with a standard C development environment
- GNU make, version 3.81 or later

### Licensing

skalibs is free software. It is available under the ISC license.

### Download

- The current released version of skalibs is 2.14.3.0.
- Alternatively, you can checkout a copy of the skalibs git repository:

       git clone git://git.skarnet.org/skalibs

- There's also a GitHub mirror of the skalibs git repository.

### Compilation

- See the enclosed INSTALL file for installation details.
- skalibs sports a few uncommon options to its `./configure` script. This page documents them in detail.

### Upgrade notes

- This page lists the differences to be aware of between the previous versions of skalibs and the current one.

### Cross-compilation

Cross-compilation is tricky. skalibs provides system-agnostic interfaces, so all the other skarnet.org packages cross-compile easily; but some effort needs to be made to cross-compile skalibs, see this page.

## Reference

### Libraries

- The `skarnet` library interface

## Similar work

Here are a few other libraries originating from the same place as skalibs, i.e. people start to reuse and package, or rewrite, code from Dan J. Bernstein, and then patch after patch, addition after addition, the code evolves into a project of its own:

- Wayne Marshall's libasagna, available for instance in the perp package
- Felix von Leitner's libowfat
- Bruce Guenter's bglibs
- Paul Jarc's prjlibs, which also includes libraries for Scheme programming

## Related resources

- `skalibs` is discussed on the skaware mailing-list.