You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Elijah Voigt bc48924d16 feat(quotesdb): implement API DB layer and all HTTP handlers
DB layer (src/bin/api/db/):
- native.rs: NativeRepository (tokio-rusqlite) implementing all CRUD ops,
  dynamic WHERE for filters, two-phase auth check for update, 13 unit tests
- d1.rs: D1Repository wasm32 stub (all methods return Internal error)
- connection.rs: open() helper — WAL + foreign_keys pragmas
- mod.rs: cfg-gate async_trait (Send on native, ?Send on wasm32)

Handlers (src/bin/api/handlers/mod.rs):
- All 7 routes: GET /api/, random, {id}, list, PUT create, POST update, DELETE
- Router order: random BEFORE {id} (prevents "random" matching as id)
- Auth: X-Auth-Code header validation → 403 on mismatch
- 13 handler unit tests with MockRepo

main.rs: opens DB, runs migrations, wraps in Arc<dyn Repo + Send + Sync>,
  binds on $PORT (default 3000)

Cargo.toml: tower dev-dep for ServiceExt::oneshot in tests

All 32 tests pass (26 api + 6 lib)

Tickets closed: 00aff0 a5049d 6e829e 28e7d9 886bfd 2ce22e 5dbb7d 05f8ae
                d792e2 5d9f5a b20b5a 175382 03bb91

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 months ago
.claude Initial commit 3 months ago
.gitea/workflows feat(quotesdb): implement API DB layer and all HTTP handlers 3 months ago
common docs: update wasm target note and add common Cargo.lock 4 months ago
edu docs: improve CLAUDE.md structure and clarity 3 months ago
nbd feat(nbd): scope nbd next/ready by dependency subtree (#818598) 3 months ago
quotesdb feat(quotesdb): implement API DB layer and all HTTP handlers 3 months ago
src Scaffolding for nbd cli 3 months ago
.envrc Initial commit 3 months ago
.gitattributes Initial commit 3 months ago
.gitignore Merge development flakes 3 months ago
CLAUDE.md docs: add shell conventions — no python3, always use jq 3 months ago
Cargo.lock Scaffolding for nbd cli 3 months ago
Cargo.toml Scaffolding for nbd cli 3 months ago
LICENSE-APACHE chore: initial repo scaffolding 4 months ago
LICENSE-MIT chore: initial repo scaffolding 4 months ago
PROJECTS.md docs(edu): add lisp-to-C compiler course with stubs and tickets [67e284] 3 months ago
README.md Initial commit 3 months ago
flake.lock chore(quotesdb): resolve all triage tickets and create implementation tickets 3 months ago
flake.nix Merge development flakes 3 months ago

README.md

Vibed

A mono-repo of CLI tools and self-contained HTTP web services built in Rust, targeting Cloudflare's edge platform.

  • Backend services run on Cloudflare Workers (via workers-rs + Axum).
  • Frontend applications compile to Wasm with Yew and deploy to Cloudflare Pages.
  • Data is stored in Cloudflare D1 (SQLite-compatible), with Turso for local development.
  • Infrastructure is managed with OpenTofu and the Cloudflare provider.

Services

Service Description
common Shared library crate — types, utilities, and definitions used across services

Services will be listed here as they are added.

Getting Started

Prerequisites

Setup

# Clone the repository
git clone https://gitea.elijah.run/pop/vibed.git
cd vibed

# Enter the dev shell (installs Rust, Trunk, OpenTofu, wrangler, etc.)
nix develop

The dev shell provides everything needed to build, test, and deploy all services.

Running a Service

# Backend
cd <service>
cargo run

# Frontend
cd <service>
trunk serve

Validation

Run from within a service directory, in order:

cargo fmt       # formatting
cargo check     # compilation
cargo clippy    # lints
cargo test      # tests

Repository Layout

vibed/
├── CLAUDE.md         # conventions and instructions for Claude Code
├── README.md         # this file
├── LICENSE-APACHE
├── LICENSE-MIT
├── flake.nix         # base Nix flake
├── common/           # shared library crate
└── <service>/        # each service is an independent Rust crate
    ├── src/
    ├── tests/        # integration tests
    ├── docs/         # PLANNING.md, ARCHITECTURE.md
    └── infra/        # OpenTofu infrastructure

See CLAUDE.md for full conventions, code style, and project documentation requirements.

License

Licensed under either of

at your option.

Disclaimer

This software is developed with the assistance of Claude Code by Anthropic.