SaaSHub helps you find the best software and product alternatives Learn more →
Top 23 C C99 Projects
-
Project mention: Flecs – A fast entity component system (ECS) for C and C++ | news.ycombinator.com | 2024-10-19
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
Project mention: OpenSSL bug exposed up to 255 bytes of server heap and existed since 2011 | news.ycombinator.com | 2024-07-30
I started writing s2n the day after Heartbleed and the first lines of code were for the stuffer interface. A stuffer is a buffer for stuff, and it's like Java buffered I/O for C. You can get a flavor from reading the header: https://github.com/aws/s2n-tls/blob/main/stuffer/s2n_stuffer...
The implementation is incredibly simple. Treat all blocks of memory as blob with a known size and then read/write into those blobs with a cursor to track progress and bounds checks on every access. Fence all serialization/deserialization through a safe low level interface. Not only do you get memory safety (which we later proved using formal reasoning) ... but when you're parsing message formats it lends itself to a declarative coding style that makes it very clear what the structure is. You can also do lifecycle things, like erasing sensitive memory with zeroes when you're done with it, making sure things don't show up in core dumps, etc. BoringSSL introduced a Crypto_bytes API that also did some of this plus bounds checking, and retrofit it into OpenSSL.
OpenSSL on the other hand is a horrific mash up of raw pointer arithmetic, ad-hoc parsers interleaved with business logic and control flow. I could never keep it straight, and it always scared me to review.
-
-
-
Melon
A generic cross-platform C library that includes many commonly used components and frameworks, and a new scripting language interpreter. It currently supports C99 and Aspect-Oriented Programming (AOP).
-
-
libexpat
:herb: Fast streaming XML parser written in C99 with >90% test coverage; moved from SourceForge to GitHub
Project mention: Which open-source projects are widely used but maintained by just a few people? | news.ycombinator.com | 2024-09-09 -
libtcod
A collection of tools and algorithms for developing traditional roguelikes. Such as field-of-view, pathfinding, and a tile-based terminal emulator.
-
Cloak
A mini-preprocessor library to demostrate the recursive capabilites of the preprocessor (by pfultz2)
-
Project mention: Metalang99: Full-Blown Preprocessor Metaprogramming | news.ycombinator.com | 2024-09-30
-
wax
A tiny programming language that transpiles to C, C++, Java, TypeScript, Python, C#, Swift, Lua and WebAssembly 🚀
-
-
RGFW
A cross platform lightweight single-header simple-to-use window abstraction library for creating graphical programs or libraries.
Project mention: RGFW: Single-header C99 window abstraction library | news.ycombinator.com | 2024-11-22 -
-
-
-
-
-
-
-
> QBE is a new optimizing backend much simpler than LLVM; cproc and cparser are two of the C compilers that target it, in addition to its own minic.
I thought cparser targeted libFirm. That's what their GitHub page says [0].
"It acts as a frontend to the libFirm intermediate representation library."
> We really need a production quality open source C compiler that is actually written in C.
I honestly think cproc or cparser are almost there already. For cproc, you just need to improve the quality of code optimization; it's really QBE you'd need to change. For example, you could change unnecessary multiplications by powers of 2 into left shifts, improve instruction selection so that subtraction is always something like "sub rax, rdi" and not "neg rdi / add rax, rdi" [1]).
For cparser, I notice slightly higher quality codegen; libFirm just needs more architecture support (e.g. AMD64 support appears to work for me, but it's labeled as experimental).
[0]: https://github.com/libfirm/cparser
[1]: I'm pretty sure this is the line of code that generates it, too: https://c9x.me/git/qbe.git/tree/amd64/emit.c#n418
-
-
C C99 discussion
C C99 related posts
-
RGFW: Single-header C99 window abstraction library
-
Flecs – A fast entity component system (ECS) for C and C++
-
Metalang99: Full-Blown Preprocessor Metaprogramming
-
Flecs is a fast and lightweight Entity Component System that lets you build game
-
Wax Programming Language
-
Compiling History: A brief tour of C compilers
-
What's your way to create an ECS?
-
A note from our sponsor - SaaSHub
www.saashub.com | 1 Dec 2024
Index
What are some of the best open-source C99 projects in C? This list will help you:
Project | Stars | |
---|---|---|
1 | flecs | 6,501 |
2 | s2n | 4,533 |
3 | cgltf | 1,474 |
4 | datatype99 | 1,376 |
5 | Melon | 1,373 |
6 | gunslinger | 1,273 |
7 | libexpat | 1,104 |
8 | libtcod | 995 |
9 | Cloak | 915 |
10 | metalang99 | 877 |
11 | wax | 795 |
12 | libspng | 742 |
13 | RGFW | 737 |
14 | halfix | 669 |
15 | json-parser | 644 |
16 | voxelizer | 626 |
17 | azure-iot-sdk-c | 588 |
18 | exengine | 558 |
19 | nbnet | 452 |
20 | FastLZ | 442 |
21 | cparser | 340 |
22 | interface99 | 303 |
23 | hamt | 284 |