For many of the projects I work on I found myself wanting to use a relational language like Datalog to generate C source from specifications, do verification during build or maintain a task database. However pulling a full blown Souffle or SWI-PL as a build dependency is always a PITA and also an overkill.
So I (with the help of Claude) built awklog, a pure POSIX awk based interpreter. Copy it to your project and use during build stage or test stage with no extra dependencies.
It's a semi-naive interpreter, so decently fast, and certainly fast enough for anything you might need to do as a dev tool.
One cool usecase in particular I've been a heavy user of is a task system maintained directly in the project git repo. Just create a text file with tuples describing your tasks, their states, dependencies, hypotheses and so on. AWKLog will be able to query it for you, even recursively, and provide instant answers. Easy for AI agents to query too and no remote infrastructure dependencies at all. Everything stays in GIT, version controlled.
I hope other people will find this tool useful too.
Comments URL: [https://news.ycombinator.com/item?id=50333096](https://news.ycombinator.com/item?id=50333096)
Points: 1