Dev tools · alternatives · 2026
24 alternatives to Sum (algebraic) types for C in one 100 line header
A mirror of https://git.sr.ht/~grego/sumtypes.h. Contribute to grego/sumtype.h development by creating an account on GitHub.
Sum is a C library provided as a single 100-line header file that implements algebraic sum types for the C programming language. It allows developers to create and work with discriminated union types, a feature… Below are 24 products that do a similar job, ranked by how close each is in meaning and then by launch-day votes. Sum (algebraic) types for C in one 100 line header launched in 2024; newer entries below may have overtaken it.
- 1IB
This weekend I created stacklib.h - a single-header library that brings Forth-style stack operations to C. It implements a basic interpreter with: - Stack operations (push/pop/dup/swap/over/drop) - Arithmetic (+, -, *, /) - Output (., emit, cr) - Stack inspection (.s, depth) Example usage: Stack s; stack_init(&s); dict_init(); exec(&s, "10 20 + ."); // Prints "30" exec(&s, "1 2 3 4 .s"); // Shows stack contents The library is self-contained, requires no dependencies, and handles basic error checking. It was inspired by wanting to understand…
2025 · its alternatives →
- 2

Since there is so much interest on HN in floats lately and their software implementations, I wanted to show mine. It has no use and is just for teaching me floats and C++. Give me your thoughts.
2024 · github.com · its alternatives →
- 3

This C library is part of a main project aimed at providing a reactive key-value (KV) database. The data is typed (numbers, strings, dates, or booleans) and can include formulas with references to other entries. Clients connected to this database receive a real-time data stream with updates to the subscribed keys, allowing them to react to changes and their dependencies. Essentially, it’s like building a distributed Excel, where data and formulas dynamically update across the system. I couldn’t find any libraries that offered the full set of features I needed for evaluating expressions, so I…
2024 · github.com · its alternatives →
- 4

Contribute to hirrolot/poica development by creating an account on GitHub.
2020 · github.com · its alternatives →
- 5CL
2013 · theck01.github.io · its alternatives →
- 6

A simple utility for running exhaustiveness checks on Go "sum types." - BurntSushi/go-sumtype
2017 · github.com · its alternatives →
- 7

Concurrency library for C (coroutines). Contribute to tidwall/neco development by creating an account on GitHub.
2024 · github.com · its alternatives →
- 8

A simple, self hosted, low level programming language. - mcilloni/fork
2018 · github.com · its alternatives →
- 9

fundamental tools in the spirit of C. Contribute to codr7/libcodr7 development by creating an account on GitHub.
2019 · github.com · its alternatives →
- 10

a lightweight web framework in c. Contribute to ashtonjamesd/lavandula development by creating an account on GitHub.
2025 · github.com · its alternatives →
- 11GI
Hi all! I'm going into my freshman year, and figured that the best way to prepare for the intro to programming Racket course would be to implement my own garbage-collected, dynamically typed, functional programming language in C ;) Anyways... here's the repo: https://github.com/liam-ilan/crumb I started learning C over the summer, so I still have a whole lot to learn... Any feedback would be greatly appreciated! :D
2023 · its alternatives →
- 12

Compile ruby functions to C. Contribute to agrafix/rubyspeed development by creating an account on GitHub.
2020 · github.com · its alternatives →
- 13

A repository that collects libc ABI files for multiple versions and a tool to combine them into one dataset. - ziglang/libc-abi-tools
2021 · github.com · its alternatives →
- 14

Common data structures and algorithms in Rust. Contribute to EbTech/rust-algorithms development by creating an account on GitHub.
2017 · github.com · its alternatives →
- 15

A C interpreter and API explorer. Contribute to hexagonal-sun/bic development by creating an account on GitHub.
2019 · github.com · its alternatives →
- 16

Simple, zero-dependency garbage collection for C. Contribute to mkirchner/gc development by creating an account on GitHub.
2019 · github.com · its alternatives →
- 17

x86 C compiler written in untyped lambda calculus. Contribute to woodrush/lambda-8cc development by creating an account on GitHub.
2022 · github.com · its alternatives →
- 18FS
Hi HN! I've been working on the fuse programming language, it's a statically typed purely functional language with higher-kinder types and ad-hoc polymorphism. It compiles to the GRIN whole-program optimizer, producing LLVM-generated native code. Fuse supports ADTs, Generics, Type Methods, Traits, Pattern matching etc. all in a functional style with no mutations. I’ve been developing the language for 5 years, with code written in Scala. I’ve started coding the language from the base of System F that was implemented as part of the book: Types and Programming Languages (tapl). And then…
Aug 2026 · fuselang.org · its alternatives →
- 19

:copyright: Concurrent Programming Library (Coroutine) for C11 - sharow/libconcurrent
2016 · github.com · its alternatives →
- 20

A small, portable, linear probing hash map. Contribute to e-dant/salmagundi development by creating an account on GitHub.
2024 · github.com · its alternatives →
- 21

Single header stackful cross-platform coroutine library in pure C. - edubart/minicoro
2021 · github.com · its alternatives →
- 22

An experimental Python-to-C transpiler and domain specific language for embedded high-performance computing - zanellia/prometeo
2021 · github.com · its alternatives →
- 23

This post is from a protected account.
2021 · twitter.com · its alternatives →
- 24

An implementation of a dynamic programming language in Rust. Includes: Parser/Compiler, REPL, Virtual Machine, Bytecode Disassembler This started out as a learning project to teach myself Rust. It has grown into a decently substantial piece of software and I've learned quite a bit in the process! Some neat things: + A garbage collector that can store dynamically sized types without any double-indirection (i.e. I have my own Box implementation with manual alloc/dealloc) + The smart pointer used to reference GCed data is a thin pointer. The ptr metadata needed for DSTs is stored in…
2022 · github.com · its alternatives →
Also compare
- I built a minimal Forth-like stack interpreter library in C alternatives
- Floating point arithmetic types in C++ for any size and any base alternatives
- An expression parser supporting multiple types alternatives
- Poica – Algebraic data types and type introspection for pure C alternatives
- C library of generic, reference-counted data structures alternatives
- A utility for running exhaustiveness checks on “sum types” in Go alternatives
Ranked by how close each launch is in meaning, then by votes. Prices were read from each product’s own site when checked and can change. Refine with your own description →