Sharers is an Arrow-native Rust financial data interface library.
This repository uses a Rust 2024 virtual workspace with resolver 3.
crates/sharers: public facade crate published assharers.crates/sharers-core: minimal endpoint, schema, provider, market, error, and transport contracts with no Arrow, Polars, HTTP client, or i18n runtime.crates/sharers-arrow: high-performance Arrow-backedDataSet, schema conversion, and zero-copy ownership transfer forRecordBatchvalues.crates/sharers-providers: HTTP transport and provider parsers. The transport boundary returns rawbytes::Bytes; hot parsers borrow wire JSON where possible, parse numeric text throughlexical-core, and materialize directly into Arrow builders.crates/sharers-derive: procedural macros for schema/request/endpoint boilerplate.crates/sharers-i18n: optional include-str backed localization catalogs.crates/sharers-polars: optional DataFrame/output compatibility layer for Polars, compatibility-view column aliases, and future localized labels.
The current implementation focuses on an Eastmoney vertical slice that exercises K-line, spot quote, fund quote, index quote, and board-list schemas while keeping the provider hot path Arrow-first.
stock_zh_a_histfund_etf_hist_emstock_zh_index_daily_emstock_zh_a_hist_min_emstock_zh_a_spot_emstock_sh_a_spot_emstock_sz_a_spot_emstock_bj_a_spot_emstock_zh_index_spot_emfund_lof_spot_emfund_etf_spot_emstock_board_industry_name_emstock_board_concept_name_em
cargo fmt
cargo check --workspace --all-targets
cargo test --workspace --all-targets
cargo run -p xtask -- help