writeonce/.gitignore
shoney.arickathil 929b2802c4 add wo-rt-c: C runtime prototype, phases A-F shipped
prototypes/wo-rt-c — single-file C reference of the writeonce runtime
layer, zero deps beyond libc + kernel uapi: thread-per-core io_uring
event loops (raw syscalls, no liburing), SO_REUSEPORT listeners, one
mlock'd mmap arena sharded by address, WAL dual-write with group commit
(HTTP ack only after the fsync CQE), boot-time snapshot + WAL replay
recovery, and a bench harness with a Go net/http comparison server.

Measured on 20 cores: 908k reads/s p99 154us and 643k fsync-acked
commits/s p99 177us on 8 shards, vs Go net/http 495k/355k (no
durability) on 20 cores. Crash-under-load testing found and fixed an
ack-before-fsync race and an fd-reuse ABA hazard in commit-ack parking.

docs/plan/exploration/c-runtime — the phased plan (00, exit evidence
per phase), the one-address architecture trace (01), and the
single-binary end-goal contract (02). justfile carries the demo and
bench recipes; .gitignore covers binaries and data dirs.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-12 23:05:13 +02:00

44 lines
1.2 KiB
Text

# Cargo build artifacts
/target
/reference/crates/target
# C++ prototype build output
/prototypes/*/build
# C runtime prototype (prototypes/wo-rt-c): compiled binary + WAL/snapshot data.
# `just rt-c-demo` and the default WO_DATA write ./wo-data at the repo root.
/prototypes/wo-rt-c/wo-rt
/wo-data
/prototypes/wo-rt-c/wo-data
# Runtime data directories for the sample projects.
# `wo.toml` points at `./data` which holds the per-project engine state.
/data
/docs/examples/*/data
# Legacy blog content and data (v1 writeonce storage)
/content
# Symlinks to research source trees — user-specific absolute paths.
# Each contributor sets their own via:
# ln -s <path-to-linux-src> reference/linux
# ln -s <path-to-go-src> reference/go
# ln -s <path-to-postgresql-src> reference/postgresql
/reference/linux
/reference/go
/reference/postgresql
# Editor / OS noise — left broad on purpose so a contributor doesn't
# accidentally commit their IDE scratch or macOS metadata.
.DS_Store
*.swp
*.swo
/.idea/
/.vscode/*
!/.vscode/settings.json.example
!/.vscode/extensions.json
/prototypes/wo-db
# Phase-F bench binaries (sources are committed; builds are not)
/prototypes/wo-rt-c/bench/bench
/prototypes/wo-rt-c/bench/goref/goref