A small educational virtual machine written in C with instructions, registers, stack, and function calls.
CarpVM is a virtual machine written in C that executes a custom bytecode instruction set. It provides a minimal runtime environment with registers, a stack, data memory, and function call support, designed as a hands-on learning project for understanding VM internals.
Systems programming learners and developers interested in building or understanding virtual machines, bytecode interpreters, and low-level C projects.
It offers a straightforward, from-scratch implementation of a VM with a documented instruction set and embeddable C API, making it accessible for educational experimentation and customization.
"interesting" VM in C. Let's see how this goes.
Built from scratch in C with a focus on learning VM internals, the project's incremental approach makes systems programming concepts accessible without overwhelming complexity.
Implements a full range of arithmetic, bitwise, and control flow instructions, allowing hands-on experimentation with bytecode design and execution.
Provides a straightforward API via carp_machine.h and libcarp.a for integrating the VM into C projects, enabling customization and extension.
Features registers, stack, and data memory in a compact codebase, ideal for understanding low-level operations like function calls and memory management.
The README explicitly marks it as deprecated and pre-alpha, with frequent breaking changes and no active maintenance, making it unreliable for any serious use.
Critical aspects like recursion are theoretically supported but untested, and documentation is sparse, with syntax specs noted as 'coming'.
Requires submodule management and specific build steps, and lacks community or tooling, hindering ease of adoption beyond educational tinkering.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.