Files
meta-feeder-gutenberg/README.md
T
2026-06-14 21:42:51 +02:00

2.4 KiB

meta-feeder-book

Book feeder sidecar for MetaMesh — surfaces public-domain books from Project Gutenberg (via the Gutendex API) into a meta-gateway.

It is the proof-of-concept feeder: a single upstream, no preview-seeding, no BitTorrent — just enough to exercise the meta-feeder-sdk + feeder HTTP contract end to end.

Role in MetaMesh

A feeder is a stateless HTTP sidecar. It finds records and fetches bytes; it does not talk to meta-core or the libp2p blockstore. The gateway core that calls it owns the meta-core store-back and the blockstore seeding. A gateway registers this feeder as a RemoteFeederPlugin pointing at its / and then drives the contract:

Endpoint Purpose
GET /manifest feeder identity + capabilities
GET /health liveness
POST /query, POST /query_stream structured search against the upstream
POST /compute enrichment / outcome compute
GET /fetch/:upstream_id/:record_id fetch a record's bytes
GET /blob/:upstream_id/:cid fetch a content-addressed blob
GET /config, GET /config/schema, GET|PUT /config/values runtime config UI + API

Configuration

Env var Default Notes
META_FEEDER_HTTP_LISTEN 0.0.0.0:8080 HTTP listen address
META_FEEDER_STATE_DIR /data/meta-feeder redb cache + state
RUST_LOG info tracing filter

No upstream API key is required — Gutendex is open.

Image

ghcr.io/worph/meta-feeder-book

Exposes 8080. Built and pushed by CI on every push to main (the main tag) and on v* tags (semver tags).

Build locally

The build context is the repo root (the Cargo workspace) so the vendored meta-feeder-sdk path dependency resolves:

docker build -f feeder-plugin/book-feeder/Dockerfile -t ghcr.io/worph/meta-feeder-book:dev .

Repo layout

This repo is a self-contained Cargo workspace vendored out of the meta-gateway monorepo:

Cargo.toml                      # workspace: members = crates/*, feeder-plugin/*
crates/meta-feeder-sdk/         # vendored shared feeder SDK
feeder-plugin/book-feeder/      # this feeder's crate + Dockerfile

Upstream source of truth for the SDK and the feeder crate is worph/meta-gateway; changes there are vendored back into this repo.