qs-backtest-server 0.2.4

Transport-neutral retained-job backtest service and CLI
Documentation
# Backtest Server — Example Configuration
#
# Copy this file to config.toml and adjust paths for your environment.

[server]
# Logical service endpoint. SHM is the default local deployment; Unix sockets and
# loopback TCP are also supported, for example unix:///tmp/backtest.sock or
# tcp://127.0.0.1:41001. TCP has no built-in authentication or TLS.
endpoint = "shm://backtest"

# Per-client SHM buffer size in bytes (default: 16 MB).
# Increase if FutureQuoteV1 results or artifacts exceed the buffer.
# run_backtest, submit_backtest, and run_backtest_multi use the same
# server/SHM settings; version-suffixed execution methods are not registered.
shm_buffer_size = 16777216

[database]
# Root directory for Parquet-partitioned market data.
# Must be populated via `data-preprocess input` before use.
data_dir = "market_data"

[symbols]
# Path to the qs-symbols registry TOML.
registry_path = "crates/symbols/symbols.toml"

[profiles]
# Path to the qs-backtest management profiles TOML.
# Profiles should include explicit target_selection. Existing serialized profiles with
# only use_targets remain readable. Dynamic RPC additions are not persisted.
profiles_path = "crates/backtest/profiles.toml"

[jobs]
# Retain completed, failed, and cancelled jobs for one hour.
retention_secs = 3600
# Periodically remove expired terminal jobs.
cleanup_interval_secs = 60
# Hard bound across queued, running, and retained terminal jobs/results.
max_retained_jobs = 1000

[artifacts]
# Filesystem directory for complete result JSON artifacts.
directory = "backtest-artifacts"
# Results up to 12 MiB can be returned inline while preserving the 16 MiB transport.
inline_limit_bytes = 12582912
# Raw bytes returned per base64-encoded chunk RPC.
chunk_size = 1048576
# Retain artifacts for one hour unless they are deleted after download.
retention_secs = 3600
# Bound total retained artifact storage to 1 GiB.
max_total_bytes = 1073741824

[logging]
# Log level: "trace", "debug", "info", "warn", "error"
level = "info"