libk  libk


libk is an (admittedly ambitious) project to create a reasonably cross-platform EUPL-licensed replacement for libc that uses and encourages modern coding techniques and idiomatic, efficient use of C. the existing standard library, libc, is an old and ailing thing, marked by idioms that otherwise would easily earn any CS student an F, replete with potholes and traps for the unwary and novice alike, and was designed at a point in history where computers were still very new and nobody had any meaningful experience with them yet.

in short, libc is simultaneously a nonviable, inflexible, dangerous basis for nontrivial new projects, and obligatory for all but the most low-level work in C, forcing coders to spend a great many hours writing blast shields around its entry and exit points. it is our aim to wash away this stain on the CS field, and hopefully make C a great deal more pleasant to write by giving coders a standard library that doesn't fight them every step of the way.

for an in-depth look at the project's aims, structure, and basic strategy, take a look at the libk manifesto.

libk is still a very new project, and we're very much looking for new contributors, whether in the role of developer, reviewer, tester, technical writer, or sponsor - in particular, those who would take on the monumental task of porting libk to windows and maintaining a windows build chain; we currently have nothing in the way of a windows team. however, even if you're new to low-level programming, you can still play an important part and meaningfully influence the shape libk ultimately takes, and if you can learn, we can teach.

while not yet suitable for application development, a sub-project exists to build a working text editor, ked, with no dependencies besides libk. it is our hope that this project will help us to improve libk's API and keep the developers from abstracting ourselves away from real-world needs.

please note that we place a very high importance on maintaining a mutually supportive, compassionate, and productive environment where our contributors can feel valued regardless of their background or personal opinions. however, our first priority is producing and maintaining a useful, high-quality library, and behavior that imperils this goal will not be tolerated.