12 releases (6 breaking)
Uses new Rust 2024
| 0.7.1 | Oct 31, 2025 |
|---|---|
| 0.7.0 | Oct 28, 2025 |
| 0.6.0 | Oct 21, 2025 |
| 0.5.2 | Oct 19, 2025 |
| 0.1.0 | Sep 15, 2025 |
#229 in Finance
964 downloads per month
Used in 5 crates
(2 directly)
215KB
3.5K
SLoC
paft-fundamentals
Fundamentals data models for the paft ecosystem: financial statements, analysis, holders, and ESG.
- Profiles:
CompanyProfile,FundProfile - Statements:
IncomeStatementRow,BalanceSheetRow,CashflowRow - Analysis: earnings, recommendations, price targets
- Holders: institutional, insiders
- ESG: scores, involvement, summary
Install
Prefer the facade crate for most applications:
[dependencies]
paft = "0.7.1"
Advanced (direct dependency, minimal):
[dependencies]
paft-fundamentals = { version = "0.7.1", default-features = false }
Alternate decimal backend:
[dependencies]
paft-fundamentals = { version = "0.7.1", default-features = false, features = ["bigdecimal"] }
With DataFrame integration:
[dependencies]
paft-fundamentals = { version = "0.7.1", default-features = false, features = ["dataframe"] }
Features
bigdecimal: change money backend fromrust_decimaltobigdecimalviapaft-moneydataframe: Polars integration (ToDataFrame/ToDataFrameVec)
Quickstart
use paft_fundamentals::{Earnings, EarningsYear, Profile, CompanyProfile};
let earnings = Earnings { yearly: vec![EarningsYear { year: 2023, ..Default::default() }], ..Default::default() };
assert_eq!(earnings.yearly[0].year, 2023);
let profile = Profile::Company(CompanyProfile {
name: "Example Corp".into(),
sector: None,
industry: None,
website: None,
address: None,
summary: None,
isin: None,
});
if let Profile::Company(c) = profile { assert_eq!(c.name, "Example Corp"); }
Links
- API docs: https://docs.rs/paft-fundamentals
- Workspace overview: https://github.com/paft-rs/paft/blob/main/README.md
- License: https://github.com/paft-rs/paft/blob/main/LICENSE
Dependencies
~4–26MB
~368K SLoC