Skip to main content

Crate ferro_feed

Crate ferro_feed 

Expand description

ferro-feed: high-performance crypto market data normalizer (multi-venue mode).

Usage: ferro-feed –config ./config.toml

The output is newline-delimited JSON (ndjson) by default, suitable for piping to downstream consumers.

ModulesΒ§

archive πŸ”’
md:v1 continuous archiver (#14) β€” the ferro-feed archive subcommand.
config πŸ”’
Runtime configuration for config-only multi-venue mode.
connector πŸ”’
control πŸ”’
Redis control-key watcher (#11).
metrics πŸ”’
Operational metrics: atomic counters, Prometheus HTTP endpoint, periodic stats logger.
model πŸ”’
Canonical market data types.
ohlcv πŸ”’
OHLCV bar aggregation from trade events.
sink πŸ”’
traits πŸ”’
Traits for exchange connectors and output sinks.
tui πŸ”’
Interactive ratatui dashboard for runtime monitoring.

StructsΒ§

Cli πŸ”’
PipelineEvent πŸ”’
VenueIngress πŸ”’

EnumsΒ§

Command πŸ”’

ConstantsΒ§

DEFAULT_COINBASE_KEY_ENV πŸ”’
DEFAULT_COINBASE_PASSPHRASE_ENV πŸ”’
DEFAULT_COINBASE_SECRET_ENV πŸ”’
DEFAULT_MASSIVE_KEY_ENV πŸ”’

FunctionsΒ§

create_connector πŸ”’
create_sink πŸ”’
init_tracing πŸ”’
main πŸ”’
parse_channels πŸ”’
parse_channels_strict πŸ”’
parse_symbol πŸ”’
resolve_env πŸ”’
run_fair_merger πŸ”’
spawn_task_panic_watcher πŸ”’
stream_end_is_fatal πŸ”’
#17 Phase-0 supervision contract: a PANIC in a supervised task (venue stream, fair-merger) exits the process so a process-level supervisor (systemd Restart=always / launchd KeepAlive) can restart it. Without this, a panicked task leaves the feed alive-but-wedged: the dead connector can’t update connected, so even /ready keeps reporting healthy. Clean task completion (e.g. stream end on shutdown) is NOT fatal.
validate_coinbase_funding_config πŸ”’
validate_ui_config πŸ”’
validate_venue_symbol_conventions πŸ”’
venues_supplying_bars πŸ”’
Venues that supply their own venue-aggregated bars (the aggregates channel) are excluded from the local trade aggregator, so the same venue never emits both venue bars and locally-aggregated bars. Gating is per-venue, so an aggregate venue can coexist with venues that do want local aggregation.