The Public Domain C Library

PDCLib is a project predicated on the belief that some building blocks are so fundamental that they should be available freely - free of restrictions, free of license boilerplate and free of politics.

Unfortunately, in the modern world this turns out to be difficult: the sum of rights that one must waive is large and complex, and in some countries (e.g. Germany) it is not even possible for an author to assign their work to the Public Domain.

As a result, we have done the closest thing possible: placed PDCLib under Creative Commons Zero. This means that we have waived as many applicable rights as possible under law, and whenever the law has prevented us from waiving said rights, we grant you a license to use PDCLib, in whole or in part, as you choose, with no restrictions.

See the documentation Creative Commons' page on CC0


PDCLib is still under heavy development. The first target of PDCLib is full C99 conformance; to that extent, the first priority is complete implementation of the C99 standard library.

That said, portions of the C11 standard library are being implemented as needed, either by PDCLib itself or other PDCLib dependent projects.

The currrent work is towards PDCLib 0.6. This involves implementation of locale and wide character support, and I/O support for wide characters, plus backend restructuring related to support for wide character I/O.

Portions of C99 implemented

Portions of C11 implemented

Portions of C99 in progress

Get the code

The latest release of PDCLib is 0.5, which introduced support for stdio. This is not a production ready release, and has known unfixed issues. This release is still available, but not recommended.

Due to the present state of PDCLib development, it is recommended that you work directly from our repository.

View the repository

Building & Porting

You can find information on building PDClib in the wiki. Instructions on porting can also be found there

Issues? Feature requests?

Bug reports and feature requests are gladly accepted in our bug tracker. We would like to take this moment to thank Atlassian for their generosity in hosting this for us for free.

Note that, at the present moment in time, feature requests which do not correpsond to the roadmap for the next version of PDCLib are unlikely to be accepted, though patches and submissions likely will as long as they align with the project goals.


PDCLib is aimed at

  • Providing a C runtime library for new compilers,
  • Providing a C runtime library for embedded systems & new OSes
  • Providing a small, compact, strictly standards conforming C library for established platforms as an alternative to the libraries commonly used

It provides a good counterpart to projects like LLVM's libc++ C++ standard library and Pathscale's libcxxrt C++ runtime library. Most C apps, many C++ apps, and both of the above libraries depend heavily upon the C standard library. It is the aim of the PDCLib project to provide the best implementation of that.


PDCLib was originally created by Martin "Solar" Baute in 2002. In 2012, after 10 years, he retired from the project. It is now maintained by Owen Shepherd.