Changelog¶
All notable changes to rayforce are documented here. This project adheres to
Semantic Versioning.
1.0.1¶
Added¶
- Decode Q wire messages from an external transport. New
q::decode_responseturns a complete Q IPC message (8-byte wire header + body, compressed or not) into aValue. This lets socket I/O live in a separate transport thread that owns a plainTcpStreamand just moves bytes, while deserialization into engine objects stays on the thread that owns theRuntime. Q server-side errors surface asErr.
1.0.0¶
Initial release of the Rust bindings for RayforceDB v2.
Added¶
- Value model. A single reference-counted
Valuehandle (Clone= retain,Drop= release) covering all atom types — bool,u8,i16/i32/i64,f32/f64, symbol, string, date, time, timestamp, and GUID — plus typed nulls. - Containers. Vectors with zero-copy
as_slice::<T>()reads, lists, and dictionaries. - Tables.
Table::newfrom typed columns, column/row accessors,head/tail/take, and inner/left/asof joins. - Query DSL. A fluent builder over
selectandupdatewithcol(..)expressions, arithmetic operator overloads, comparison and aggregation methods, filtering, grouping (by), and ordering. - CSV & splayed I/O.
read_csv/write_csv, plussave_splayed,load_splayed, andload_partedfor on-disk columnar data. - Serialization.
Value::serialize/Value::deserializeround-trips using RayforceDB's native wire format. - Conversions.
ToValue/FromValuefor native Rust types and an optionalchronofeature (default) for temporal interop. - IPC client.
TcpClientto connect to a running RayforceDB server,executequeries, andsend/send_asyncvalues.
Notes¶
- A single live
Runtimeper process;Value,Table, andTcpClientare!Send/!Sync. - An embedded IPC server, window joins, pivots, and feature-gated dataframe/SQL plugins are planned for future releases.