PumpkinDB/PumpkinDB
65.4
Adequate · 21 September 2026
7.5k
lines of production code
Rust
primary language
4
measurements over time
What this system is
PumpkinDB is a Rust-based database system that provides a modular architecture for handling asynchronous TCP connections, executing scripts, and managing storage. It features a dedicated client-server communication protocol, a terminal-based CLI for interactive access, and a binary script parser for data serialization. The system is structured as a multi-crate workspace, separating the core engine, networking, and client components to support flexible configuration and extensibility.
Features
Add PumpkinDB terminal client for interactive database access
A new command-line interface (CLI) tool has been introduced for interacting with PumpkinDB. This terminal client connects to the database server, allowing users to execute scripts and receive results directly from the command line. The tool supports multi-line input, command history, and displays trace information for debugging scripts, providing a more convenient way to access the database without implementing a custom client.
_pumpkindb\term · high confidence
Introduce binary parser and encoding/decoding infrastructure for PumpkinScript
The PumpkinScript module now includes a new binary parser (binparser.rs) that validates and parses binary script data, alongside new encodables (encodables.rs) and packable/unpackable traits (packable.rs) that define how data types like floats, big integers, and signed integers are serialized and deserialized. This adds the capability to process and validate binary-form scripts, complementing the existing text parser, and introduces structured encoding for data types including fixed-size floats and big integers.
pumpkinscript · high confidence
Introduce packet-based send/receive capabilities for the Pumpkindb client
The pumpkindb\_client crate now provides the foundational networking primitives for the client, including packet serialization (prefixing messages with their length) and deserialization. Users can now send and receive messages using the new Send and Receive traits, which wrap standard I/O streams with packet-aware writers and readers. This enables the client to communicate with the server using a defined protocol rather than raw byte streams.
_pumpkindb\client · high confidence
New mio-based TCP server implementation
Added a new asynchronous TCP server implementation in the \pumpkindb\_mio\_server\ crate, built on the \mio\ library. This introduces a new server component that handles TCP connections, manages message relaying via channels, and integrates with the \pumpkindb\_engine\ for script execution. The server listens on a specified port and uses an event loop to process readable and writable events for connected clients.
_pumpkindb\_mio\server · high confidence
Project infrastructure and documentation updates
The repository now includes a .gitignore file to exclude build artifacts and IDE files, a .rustfmt.toml to enforce code formatting, and a Makefile to simplify running tests and documentation. A Dockerfile has been added to enable easy local testing and deployment of PumpkinDB. Additionally, CONTRIBUTING.md and the c4 process documentation have been introduced to guide new contributors, and the project has adopted the Mozilla Public License 2.0.
(repo-wide) · high confidence
PumpkinDB server now supports external configuration files
The server now accepts a configuration file via the --config/-c flag, allowing users to specify settings such as storage path, map size, and logging configuration. This replaces the previous hardcoded defaults and enables more flexible deployment and environment-specific setups.
_pumpkindb\server · high confidence
Architecture
Restructured pumpkindb\_engine with modular handlers and messaging support
The engine's internal architecture has been restructured to improve modularity and extensibility. The codebase is now organized into distinct modules for core logic, stack, queue, numbers, storage, hashing, and other features, each with its own handler. A new messaging system has been introduced, providing publisher and subscriber traits for inter-component communication. Additionally, a non-volatile memory abstraction (mmap-based) and an environment heap allocator have been added to support the new modular design.
_pumpkindb\engine · high confidence
Behavioural changes
Improved typography and layout for documentation
The documentation now uses the Charter typeface for headings and body text, providing a more polished and readable appearance. Additionally, the layout has been adjusted for mobile devices and standard screens to improve spacing and readability.
doc/styles · medium confidence
Test coverage
Added doctest runner for script examples
Added a new doctest runner in tests/doctests/src/main.rs that parses Markdown files in doc/script, extracts embedded script examples, and executes them against the engine to verify expected outcomes.
tests/doctests · high confidence
Dependencies
Project restructured into a Rust workspace with multiple crates
The project has been reorganized into a Cargo workspace containing several distinct crates: pumpkinscript, pumpkindb\_engine, pumpkindb\_client, pumpkindb\_mio\_server, pumpkindb\_server, pumpkindb\_term, and tests/doctests. This change introduces new dependencies such as mio, clap, and various utility libraries, while establishing a modular architecture that separates the database engine, client, server, and scripting components.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 61 → 65 (+4.3)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 91 → 92 (+1.1)
- Architecture 100 → 97 (-3.0)
- Maturity 52 → 52 (-0.0)
- Readiness 46 → 58 (+12.5)
- Security 96 → 94 (-1.9)
- Domain Modelling 100 → 100 (+0.0)
Resolved (9)
- Coverage not included — suite not readable by the collector
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- LLM evaluation failed
- Medium IaC: CKV2_DOCKER_1 (Dockerfile)
- Medium IaC: CKV_DOCKER_3 (Dockerfile)
- Medium IaC: DS-0013 (Dockerfile)
- No exposed public API
- Test reliability not included
- dormant codebase — no living knowledge left to concentrate
New (45)
- Ambiguous naming for stack operations. stack_top() suggests a peek operation, but pop() also returns MmapViewSync (a view into memory), which implies it might not remove the item or is a view into the popped item. If pop() removes the item, it should likely return the value or a result indicating success/failure, not a view. If it's a peek, it should be named peek(). The current naming makes it unclear if pop() is a destructive read or a non-destructive view.
- Change coupling: macros.rs ↔ mod_storage.rs (pumpkindb_engine/src/script/macros.rs)
- ClassTooLong: Handler (pumpkindb_engine/src/script/mod_numbers.rs)
- Dependency hygiene PARTLY measured — Cargo dependencies read, no committed lock to grade for currency
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
- Duplicated block (10 lines × 2) (pumpkindb_mio_server/src/connection.rs)
- Duplicated block (10 lines × 2) (pumpkinscript/src/binparser.rs)
- Duplicated block (11–12 lines × 3) (pumpkindb_engine/src/script/mod_stack.rs)
- Duplicated block (13 lines × 2) (pumpkindb_engine/src/script/mod_core.rs)
- Duplicated block (13 lines × 2) (pumpkindb_engine/src/script/mod_hlc.rs)
- Duplicated block (14 lines × 2) (pumpkindb_engine/src/script/mod_storage.rs)
- Duplicated block (2–7 lines × 13) (pumpkindb_engine/src/script/mod_binaries.rs)
- Duplicated block (5 lines × 2) (pumpkindb_engine/src/script/mod_numbers.rs)
- Duplicated block (5 lines × 2) (pumpkindb_engine/src/script/mod_numbers.rs)
- Duplicated block (5 lines × 2) (pumpkindb_engine/src/script/mod_numbers.rs)
- Duplicated block (6 lines × 2) (pumpkindb_engine/src/script/mod_msg.rs)
- Duplicated block (6 lines × 4) (pumpkindb_engine/src/script/mod_json.rs)
- Duplicated block (8 lines × 2) (pumpkindb_engine/src/script/mod_core.rs)
- Duplicated block (8 lines × 2) (pumpkindb_engine/src/script/mod_stack.rs)
- …and 25 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
PumpkinDB/PumpkinDB was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 21 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit f37b0b586357cafd2fd0eba8bea9072665af0b00 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-fa71c66cabd8.