+ − What exactly is sigc?
sigc is a domain-specific compiler and runtime for quantitative trading strategies, written in Rust. You write a .sig file declaring data sources, parameters, signal computations, and a portfolio. The compiler type-checks it, the runtime executes a backtest against Polars/Arrow data, and the same binary can run as a production daemon.
+ − What ships in the box for backtesting?
The portfolio block compiles to a weight scheme (rank long_short with top/bottom percentiles and per-name caps, or scale_vol with an annualised volatility target), an explicit rebalance cadence, a transaction-cost model (bps or square-root slippage with a coefficient), a date range, and an optional benchmark such as SPY. sigc run prints Total Return, Sharpe, Max Drawdown, and Turnover.
+ − What execution venues are supported?
The README lists Alpaca for paper and live trading, Yahoo Finance for free market data, PostgreSQL for async-pooled storage, S3 and GCS for cloud data, and a pysigc Python binding for notebooks. The repository also includes Docker and Kubernetes deploy configuration.
+ − How is reproducibility actually enforced?
Every compile and run keys its outputs into a content-addressed cache backed by sled and blake3. Given the same .sig file, parameters, and input data, the cache returns the same intermediate frames, and the backtest emits the same numbers down to the last basis point.
+ − Is the operator set fixed?
No. The runtime ships 120+ operators, but you can define your own signals as named blocks, combine them with explicit arithmetic (0.4 * momentum + 0.3 * value + 0.3 * quality), and import shared libraries of factors across teams.
+ − How does the daemon differ from standalone?
Standalone mode opens the cache for the duration of one command. Daemon mode (sigc daemon) is a long-running process that owns the cache and answers compile and run requests over nng on port 7240. Multiple clients can hit the same daemon; sub-millisecond local RPC; no broker.
+ − Can I embed sigc in a larger Rust system?
Yes. The Strategy and Backtest types are exported. You load a .sig file, override parameters with with_param, call run, and pull weights or daily returns as plain Vec<f64>. The compiler and runtime are also published as separate crates (sig_compiler, sig_runtime, sig_types, sig_cache, sig_lsp).
+ − Where do I read the docs?
docs.skelfresearch.com/sigc has the quickstart, language reference, CLI reference, a nine-chapter quant guide, an operator reference, and a strategy library. The GitHub README is a tasting menu; the docs site is the full reference.