nowfound

Dev tools · alternatives · 2026

24 alternatives to An expression parser supporting multiple types

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…

This C library parses and evaluates typed expressions for a reactive key-value database system. It supports multiple data types including numbers, strings, dates, and booleans, and handles formulas with references to… Below are 24 products that do a similar job, ranked by how close each is in meaning and then by launch-day votes. An expression parser supporting multiple types launched in 2024; newer entries below may have overtaken it.

  1. 1

    A strongly-typed document database that runs on any transactional key-value store. - losfair/RefineDB

    2021 · github.com · its alternatives →

  2. 2

    A C++ HTML template engine that uses compile time HTML parsing - rep-movsd/see-phit

    2017 · github.com · its alternatives →

  3. 3

    A SQL database implemented purely in TypeScript type annotations. - codemix/ts-sql

    2020 · github.com · its alternatives →

  4. 4

    A small, portable, linear probing hash map. Contribute to e-dant/salmagundi development by creating an account on GitHub.

    2024 · github.com · its alternatives →

  5. 5

    A lightweight single-header pattern-matching library for C++17 with macro-free APIs. Try it at https://godbolt.org/z/8YMr8Kz8j

    2022 · github.com · its alternatives →

  6. 6

    (educational) build your own disk based KV store. Contribute to avinassh/py-caskdb development by creating an account on GitHub.

    2022 · github.com · its alternatives →

  7. 7

    Long-simmering side project that is finally ready to see the light. HAMTs are a cool persistent data structure and implementing one has been a lot of fun. Beyond the code, there is likely some value in the extensive and largely complete implementation docs; basic benchmarks are linked in the README, too. Kind of aiming to be "the libavl for HAMTs". That is obviously a high and aspirational bar but a distinct possibility if it stirs up a little interest and/or contribution. Anyways, it's time for this to go out, collect feedback and maybe even some use outside of toy projects. Let me…

    2023 · github.com · its alternatives →

  8. 8

    I've built many interpreters over the years, and Bolt represents my attempt at building the scripting language I always wanted. This is the first public release, 0.1.0! I've felt like most embedded languages have been moving towards safety and typing over years, with things like Python type hints, the explosive popularity of typescript, and even typing in Luau, which powers one of the largest scripted evironments in the world. Bolt attempts to harness this directly in the lagnauge rather than as a preprocessing step, and reap benefits in terms of both safety and performance. I intend to be…

    2025 · github.com · its alternatives →

  9. 9

    Wrote this to learn more about the `chumsky` parser combinator library, rustyline, and the `ariadne` error reporting crate. Such a nice DX combo for writing new languages. Still a work in progress, but I thought I'd share :)

    2025 · github.com · its alternatives →

  10. 10

    Meta programming utilities for C++14. Merged in matt-42/lithium - matt-42/iod

    2014 · github.com · its alternatives →

  11. 11

    A mirror of https://git.sr.ht/~grego/sumtypes.h. Contribute to grego/sumtype.h development by creating an account on GitHub.

    2024 · github.com · its alternatives →

  12. 12

    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 →

  13. 13IB

    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 →

  14. 14

    Fast C based HTML 5 parsing for python. Contribute to kovidgoyal/html5-parser development by creating an account on GitHub.

    2017 · github.com · its alternatives →

  15. 15

    `cronexpr` is a library to parse and drive the crontab expression.

    2024 · docs.rs · its alternatives →

  16. 16

    Hi community, we just released https://github.com/tonbo-io/typed-arrow. When working with arrow-rs, we noticed that schemas are declared at runtime. This often leads to runtime errors and makes development less safe. typed-arrow takes a different approach: - Schemas are declared at compile time with Rust’s type system. - This eliminates runtime schema errors. - And introduces no runtime overhead — everything is checked and generated by the compiler. If you’ve run into Arrow runtime schema issues, and your schema is stable (not defined or switched at runtime), this project…

    2025 · github.com · its alternatives →

  17. 17

    I've created cppmatch, a lightweight, header-only C++ library that brings Rust-inspired pattern matching and error handling to C++. It tries to imitate the functionality of the questionmark (?) operator in C++ by using a macro that uses the gcc extension https://gcc.gnu.org/onlinedocs/gcc/Statement-Exprs.html This allows to create exceptionless code with non-intrusive error-as-value that unlike Exceptions, makes it clear which kinds of error a function can generate and forces you to handle (or ignore) them. The ? operator translates to *expect* To handle the errors I…

    2025 · github.com · its alternatives →

  18. 18

    Query C++ codebases using SQLite. Contribute to frabert/ClangQL development by creating an account on GitHub.

    2021 · github.com · its alternatives →

  19. 19

    Hey all, I'm the creator of @pg-nano/pg-parser. I'm using it in pg-nano[1] to statically analyze Postgres schemas spread across multiple SQL files for a couple of reasons: 1. Each CREATE statement needs to be in topological order, so pg-nano's dev command can execute them without issue. 2. pg-nano has a plugin system like Vite that allows SQL generation based on the parsed schema. Probably to the surprise of no one, working with an untyped AST feels like you're back in the days of JavaScript, because well... you are. Most of you know by now just how great TypeScript and static types in…

    2024 · github.com · its alternatives →

  20. 20

    While speccing out this spreadsheet tool, I realized that I never had to think about the keybindings. It all just came naturally from Vim. Normal/insert/visual modes, hjkl navigation, dd/yy/p, :w, :q. The usual muscle memory works. It supports CSV/TSV import and export, and a native .cell format that preserves formulas. The formula engine handles SUM, AVERAGE, COUNT, MIN, MAX, and IF with range references. The codebase is a Cargo workspace: a pure cell-sheet-core library (no TUI dependency) and a cell-sheet-tui crate on top of ratatui. Early days, but it's usable. To…

    Apr 2026 · github.com · its alternatives →

  21. 21

    Throughout my career, I tried many tools to query PostgreSQL, and in the end, concluded that for what I do, the simplest is almost always the best: raw SQL queries. Until now, I typed the results manually and relied on tests to catch problems. While this is OK in e.g., GoLang, it is quite annoying in TypeScript. First, because of the more powerful type system (it's easier to guess that updated_at is a date than it is to guess whether it's nullable or not), second, because of idiosyncrasies (INT4s are deserialised as JS numbers, but INT8s are deserialised as strings). So I wrote pg-typesafe,…

    Feb 2026 · github.com · its alternatives →

  22. 22

    Distributed "massively parallel" SQL query engine. Contribute to eventql/eventql development by creating an account on GitHub.

    2016 · github.com · its alternatives →

  23. 23

    C++ Mathematical Expression Library (ExprTk)

    Jan 2026 · partow.net · its alternatives →

  24. 24

    fundamental tools in the spirit of C. Contribute to codr7/libcodr7 development by creating an account on GitHub.

    2019 · github.com · its alternatives →

Also compare

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 →