ctl
mlib
Our great sponsors
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
ctl
-
Popular Data Structure Libraries in C ?
C Container Template Library (CTL)
- C Template Library
-
Template generator for C?
I guess something like that may exist but it can be done with the preprocessor alone. See https://github.com/tylov/STC or https://github.com/glouw/ctl
-
STC Templated Containers library V3.8
I assume you refer to that two of the letters match with STL or STD, right? Even if they are not related to C at all. I assume STB, CTL, are not acceptable for you either?
- Modern programming languages require generics
-
How to make develop C application easier?
The standard C library lacks any kind of containers (vectors, hash tables etc.) so the first thing would be to find one you like. For example, the C Template Library is a nice one: https://github.com/glouw/ctl
-
The Rust compiler has gotten faster again
While I agree the common pattern is to use void*/dynamic dispatch, this is not necessary. E.g., https://github.com/glouw/ctl/ or https://github.com/c-blake/bst show a couple ways to have generic code statically specialized in regular old C.
-
STC 2.0: standard template containers for C
The template instantiation is rewritten and is now similar to how glouw CTL library does it. STC no longer contains long macros for generating the templated code.
-
Quasi general AVL-Tree implementation
define type macros before #including the implementation. (intrusive) This is how https://github.com/glouw/ctl does it. The good: type-safety. no casting, clear error messages. Somewhat clumsy to have to individual #includes for each container type instantiation of the same container.
- Metaprogramming custom control structures in C
mlib
-
preprocessor stuff - compile time pasting into other files
This uses the preprocessing library
-
Popular Data Structure Libraries in C ?
M*LIB
-
So what's the best data structures and algorithms library for C?
Thanks to your feedback, I have added a new chapter in the documentation explaining how to do what you want. In this case, you need to inherit from the integer oplist (M_BASIC_OPLIST) and only adds the operator you need using the macro M_OPEXTEND. I have also added examples for integer and for c-string that may help you since there weren't any example with OA hashmap.
-
C Template Library
A quick bench on array(unsigned) between RXI vec and M*LIB array, which uses type generation, shows 1476 ms for RXI vec and 1116 ms for M*LIB (O2 / native / No LTO).
- M*LIB: Generic type-safe Container Library for C language
-
[2022] [C] Flipper Zero (STM32, ~100KB RAM available) - ALL 25 days
That was definitely part of the pain: I'm not fluent in C (professionally mainly write golang), so everything was taking me more time, and I was cursing the lack of all the niceties I'm used to. Having access to mlib that came with the firmware did help a lot, but still... Then also having to run everything through the flipper, 'screening' to it to get logs, etc. was just that extra little bit of pain.
-
STC VS mlib - a user suggested alternative
2 projects | 1 Oct 2022
What are some alternatives?
src - Read-only git conversion of OpenBSD's official CVS src repository. Pull requests not accepted - send diffs to the tech@ mailing list.
stc - Speedy TypeScript type checker
STC - A modern, user friendly, generic, type-safe and fast C99 container library: String, Vector, Sorted and Unordered Map and Set, Deque, Forward List, Smart Pointers, Bitset and Random numbers.
advent-of-code-2022 - Advent of Code 2022 on the Flipper Zero
ixy-languages - A high-speed network driver written in C, Rust, C++, Go, C#, Java, OCaml, Haskell, Swift, Javascript, and Python
CC - A small, usability-oriented generic container library.
rapidyaml - Rapid YAML - a library to parse and emit YAML, and do it fast.
map - A type-safe hash map implementation for C
Klib - A standalone and lightweight C library
flipperzero-firmware - Flipper Zero firmware source code