RayforceDB – a pure C analytics database with a Lisp-like syntax
Open source · Pure C · Zero dependencies Analytics and graphs. One fast engine. Rayforce fuses columnar analytics, graph traversal, and recursive queries into one embeddable execution pipeline—built for teams that measure latency in microseconds, not meetings. ; 100,000 deterministic market rows (select {from: trades where: (> qty 100) by: symbol trades: (count qty) notional: (sum (* price qty))}) Load100K rows Optimizerewrite DAG Filter60K match Group4 symbols Join the community One execution model Stop moving data between engines. Relational operators and graph traversals belong in the same plan. Rayforce sees the whole workload, rewrites it together, and keeps the hot path close to the metal. Compose Tables + graphs + rules Optimize Rewrite the whole plan Fuse Remove intermediates Execute Stream cache-sized morsels Rayfall language Ask complex questions. Keep the syntax small. Use Rayfall interactively, embed the C API, or connect through a growing set of client interfaces. Every surface reaches the same optimizer and execution core. ; Aggregate high-value flow, then traverse counterparties (set flow (select {from: trades where: (> Notional 1000000) by: Counterparty Volume: (sum Notional)})) (.graph.var-expand network flow 1 3) import rayforce as rf trades = rf.read_csv("trades.csv") flow = (trades .where(rf.col("Notional") > 1_000_000) .group_by("Counterparty") .agg(rf.col("Notional").sum())) network.expand(flow, min_depth=1, max_depth=3) ray_t *trades = ray_read_csv("trades.csv"); ray_graph_t *g = ray_graph_new(trades); ray_op_t *amount = ray_scan(g, "Notional"); ray_op_t *limit = ray_const_i64(g, 1000000); ray_op_t *hot = ray_gt(g, amount, limit); ray_t *result = ray_execute(g, ray_filter(g, trades, hot)); Built as one system Small footprint. Serious machinery. Everything you need to move from raw columns to connected answers—without assembling a second platform around it. Columnar analytics Vectorized filters, joins, groups, windows, pivots, and time-series primitives. Native graph engine CSR traversal, shortest paths, centrality, communities, WCO joins, and HNSW. Recursive Datalog Express reachability and recursive relationships as rules compiled into the same DAG. Storage that stays open CSV, splayed and partitioned tables, memory maps, IPC, and block offloading. Rayforce in the wild Built for real work, not synthetic demos. Rayforce is already part of production systems and open-source projects spanning trading, market connectivity, investment analytics, and risk. Usage confirmed by the Rayforce project. Consumer names link to their public sites. Infrastructure for fast-moving US equity markets. Lynx Trading Technologies builds modular connectivity, routing, risk, compliance, and analytics systems for broker-dealers. Quantitative tools for investment decisions. Fortitudo Technologies develops investment management software for portfolio analytics, risk, and research workflows. An open implementation of q for everyone. PeachQ is an MIT-licensed, community-built q implementation powered by Rayforce for vector operations, tables, and interactive analysis. Rayforce Cloud Coming soon The engine you can embed. The platform you won’t have to operate. We’re bringing Rayforce’s unified analytics and graph pipeline to a managed cloud experience—so teams can move from local prototype to production workload without rebuilding the data path. Deployment Open at the core Read every line. Own every workload. One codebase. One public header. No external runtime. Clone Rayforce, compile it, embed it, and keep control of your data path.