matten-data
Experimental (scaffold,
0.20.xfamily). An approved, scope-locked companion crate (RFC-033). It currently has no public API — table ingestion and conversion arrive in later releases (RFC-034, RFC-035). Pin the minor version.
Part of the matten workspace — see it for the full family.
Overview
matten-data will be a tiny helper for the boring step between table-like input
and a numeric matten::Tensor:
small CSV / table-like data
-> inspect schema
-> select columns by name
-> clean missing values explicitly
-> convert to numeric explicitly
-> matten::Tensor
That is its whole purpose. It helps you reach a Tensor; core matten computes
with the Tensor; matten-mlprep prepares the numeric Tensor for modelling.
Not a dataframe library
matten-data is not a dataframe library. It deliberately has no joins,
group-by, pivot, query DSL, lazy execution, indexing / loc / iloc, rolling or
window operations, datetime engine, categorical dtype system, or large-data
streaming.
For dataframe, query, or large-data workloads use
Polars, DataFusion, Pandas, or
another dataframe/query tool. matten-data is a small conversion helper for
application-validated or trusted data, not a CSV firewall or malicious-input
sandbox.
Relationship to core dynamic
Core matten's dynamic feature is value-level ingestion (mixed values inside a
Tensor, with explicit try_numeric()). matten-data is table-level preparation
(headers, named columns, schema summary, table-shaped missing-value policy) whose
end goal is a numeric Tensor. It may use core dynamic internally but does not
expose a second computation engine.
Status and scope
- Maturity: experimental. The API (when added) may change; pin the version.
- Scope lock: table-to-Tensor preparation only (RFC-033, RFC-042).
- Dependency direction:
matten-datadepends on corematten; core never depends onmatten-data(enforced by the dependency-boundary CI check). - Safe Rust only:
#![forbid(unsafe_code)].
Dependency style
This crate depends on matten. When the public API lands, official examples will
import Tensor from matten directly:
use Tensor;
// use matten_data::Table; // (not yet available)
Declare both matten and this crate in your Cargo.toml (RFC-032).
Compatibility
- SemVer: pre-1.0 (
0.x). Shares themattenfamily version (RFC-030). - MSRV: Rust 1.85 (edition 2024).