

Awesome-C: A curated list of awesome C frameworks, libraries, resources - adamnemecek
https://notabug.org/koz.ross/awesome-c

======
bch
> PCC - A very old C compiler.

"Venerable" would be a much more gracious way to describe the compiler that
brought us so much, to say nothing about the fact that it's still actively
maintained today.

------
indutny
It seems that this list has a clear preference to GPLv3. There are tons of
popular MIT and BSD libraries missing in each section.

~~~
kozross
If you know of such libraries, please open an issue on the awesome-c repo, and
I will include them.

------
cremno
It's a bit off-topic, but is there a reason to still use the original MinGW
and not MinGW-w64? The list only mentions the original one.

I also didn't know that GNU refers to the MIT license as Expat license.

The list also links to several PDF versions of books that are still sold and
also not published under a free license. Just mentioning them should be fine.
We all know how to use an online search engine if we want to get a copy, don't
we?

~~~
kozross
No good reason for that - I don't use Windows, thus my omission. I'll correct
it as soon as I can.

As for the PDF links - good point. I'll amend that too.

~~~
cremno
There also some tools I think should be added: I'm not sure if linking to
AddressSanitizer is okay (as its (an underused) part of Clang and GCC), but I
consider include-what-you-use, unifdef, and maybe C++ Compiler Explorer a
worthwhile addition.

What about mbedTLS (formerly PolarSSL)? It's dual licensed though.

[https://code.google.com/p/address-
sanitizer/(Apache](https://code.google.com/p/address-sanitizer/\(Apache) 2.0)

[https://code.google.com/p/include-what-you-
use/](https://code.google.com/p/include-what-you-use/) (same license as
LLVM/Clang)

[http://dotat.at/prog/unifdef/](http://dotat.at/prog/unifdef/) (BSD)

[http://gcc.godbolt.org/](http://gcc.godbolt.org/) (BSD)

[https://tls.mbed.org/](https://tls.mbed.org/) (GPLv2)

Edit: midipix is something one should look out for. What it promises to
support and how, sounds much more appealing to me than Cygwin or MinGW-w64,
but it's still in early development:
[http://midipix.org/](http://midipix.org/)

------
gao8a
Don't forget ArnoldC :)
[https://github.com/lhartikk/ArnoldC](https://github.com/lhartikk/ArnoldC)

------
keenerd
What are your thoughts on embedded scripting languages, for when your C needs
a little more runtime flexibility? There are a few written in C and are
designed to be slotted into a larger C program.

If you want to start a "computer vision" category, I've written a little
library that might qualify: QuickBlob (LGPL connected component labeling)

~~~
yoklov
I've worked with _a lot_ of these (I work in game development, where this sort
of thing is fairly popular), and IMO they're not worth the significant runtime
cost and software complexity required to integrate them.

In my experience, it's almost never that much harder to develop the code in C
or C++ (especially given how much better C/C++ debuggers are from those found
in scripting languages).

Most of the dynamism and flexibility that actually give you benefits (IMO
module systems and hot code reloading -- the latter of which is actually
easier to do in C than in a lot of other languages) can be achieved using
dynamically linked libraries, anyway.

------
chuckcode
Lots of goodies in there. I'll make a pitch for including some modern mallocs
like jemalloc or tcmalloc in the list. Also the hdf5 library for numerical
data storage is quite useful (pytables is built on top of it).

~~~
kozross
Yeah, those are good suggestions - I'll add them.

------
aceperry
Nice little list. Now all we need is something like 'CPM', the C Package
Manager. Got to keep up with the cool kids.

------
oldmanhorton
I am confused about notabug.org, why do the project and profile pages look
eerily similar to GitHub's?

~~~
kozross
The whole point of NAB is to be a fully-free (as in freedom) alternative to
GitHub. It was prompted (in a big way) by the acquisition of Gitorious.

~~~
comex
Which is not an amazing reason to get into uncanny valley territory with
respect to GitHub's design and page layout - to the point of using GitHub's
Octicons (which is entirely permitted by the license, for the record, but IMO
contributes to an overall uncomfortable feeling when combined with other
aspects).

------
gpvos
libdjb is missing

~~~
kozross
Thanks - will add.

