jq is a compiled, dependency-light C command-line tool and embeddable libjq library for transforming JSON and text streams. In production it acts as a Unix pipeline filter: it reads JSON, raw text, or JSON text sequences from stdin/files, parses them, evaluates a user-supplied filter expression, and writes transformed output to stdout. The filter language is a functional DSL compiled to a custom bytecode via a Flex lexer (src/lexer.l), Bison grammar (src/parser.y), block-based compiler (src/compile.c), and stack VM (src/execute.c) with tail-call optimization. JSON values are represented by the refcounted jv API (src/jv.c, src/jv.h), with carefully maintained UTF-8 handling and exact decimal parsing.
Nova is a custom ECMAScript (JavaScript) engine implemented in Rust, designed as a modular, embeddable runtime. It features a full bytecode compiler and virtual machine, a custom mark-compact garbage collector with typed arena allocation, and a shape-based (hidden class) object model for property access optimization. The engine closely follows the ECMAScript specification, implementing built-in objects (Promise, Array, Map, Set, Proxy, Temporal, etc.), module loading, and concurrent agents. Its architecture emphasizes data-oriented design and safe GC interaction through Rust-specific patterns like `GcScope`/`NoGcScope` and the `Bindable` trait. The project includes a standalone CLI (`nova_cli`) for running scripts and a test262 harness, currently passing approximately 80% of the official test suite. While actively developed, the engine has known limitations: many features are incomplete or behind feature flags (e.g., RegExp lacks full compliance, Temporal has placeholders, and several built-ins have `todo!()` stubs). The codebase exhibits high craftsmanship in its GC safety system, bytecode compiler, and object shape mechanics, but relies heavily on unsafe Rust and manual lifetime management. Nova is primarily a research-grade implementation aimed at embedding and exploration, not yet production-ready for general use.