The Idea

That nice snippets of C code should be moved out of junkcode directories and exposed to a wider world, where they can become something useful.

CCAN is loosely modelled after the successful CPAN project for Perl code development and sharing.

Get The Code

You can get each module as a tarball (see list), get a tarball of the whole repository with tools, or clone our git repository (git clone git:// or the one on github.

Use The Code

There are two ways to use it:

  1. Put modules into a ccan/ subdirectory into your project. Add a "config.h" (like this example, or generate one using the configurator) and compile every .c file in ccan/* (as in this Makefile)).
  2. Alternatively, just hack whatever parts you want so it compiles in your project.

Add Code

We always welcome new code; see how!.

Anyone can send code or a git pull request to the friendly mailing list or just upload it using the web form.

"GPLv2 or later" and supersets thereof (eg. LGPLv2+ or BSD) licenses preferred.

Complaints, Ideas and Infrastructure

We have a low volume mailing list for discussion of CCAN in general, and you're welcome to join.

We also have an IRC channel: #ccan on Freenode.

We also have a wiki; feel free to enhance it.

To see how graphic codes improve the performance of new RTG casinos, visit