| Crates.io | finalytics |
| lib.rs | finalytics |
| version | 0.8.9 |
| created_at | 2023-10-09 20:16:19.336975+00 |
| updated_at | 2025-10-05 16:21:53.280524+00 |
| description | A rust library for financial data analysis |
| homepage | https://finalytics.rs/ |
| repository | https://github.com/Nnamdi-sys/finalytics |
| max_upload_size | |
| id | 998433 |
| size | 594,038 |

Finalytics is a modular, high-performance Rust library for retrieving financial data, performing security analysis, and optimizing portfolios.
It is designed for extensibility and speed, and powers bindings for Python, Node.js, Go, and a web application built with Dioxus.
Add the following to your Cargo.toml file:
[dependencies]
finalytics = "*"
Or run:
cargo add finalytics
Finalytics is organized around four core modules, each designed for a specific aspect of financial analytics:
Efficiently filter and rank securities (equities, crypto, etc.) using advanced metrics and custom filters.
Usage Example:
use finalytics::prelude::*;
let screener = Screener::builder()
.quote_type(QuoteType::Equity)
.add_filter(ScreenerFilter::EqStr(
ScreenerMetric::Equity(EquityScreener::Exchange),
Exchange::NASDAQ.as_ref()
))
.sort_by(
ScreenerMetric::Equity(EquityScreener::MarketCapIntraday),
true
)
.size(10)
.build()
.await?;
screener.overview().show()?;
screener.metrics().await?.show()?;
Analyze a single security in depth: performance, financials, options, news, and more.
Usage Example:
let ticker = Ticker::builder()
.ticker("AAPL")
.start_date("2023-01-01")
.end_date("2024-12-31")
.interval(Interval::OneDay)
.benchmark_symbol("^GSPC")
.confidence_level(0.95)
.risk_free_rate(0.02)
.build();
ticker.report(Some(ReportType::Performance)).await?.show()?;
ticker.report(Some(ReportType::Financials)).await?.show()?;
ticker.report(Some(ReportType::Options)).await?.show()?;
ticker.report(Some(ReportType::News)).await?.show()?;
Work with multiple securities at once—aggregate reports, batch analytics, and portfolio construction.
Usage Example:
let tickers = TickersBuilder::new()
.tickers(vec!["AAPL", "MSFT", "GOOG"])
.start_date("2023-01-01")
.end_date("2024-12-31")
.interval(Interval::OneDay)
.benchmark_symbol("^GSPC")
.confidence_level(0.95)
.risk_free_rate(0.02)
.build();
tickers.report(Some(ReportType::Performance)).await?.show()?;
Optimize and analyze portfolios using advanced objective functions and constraints.
Usage Example:
let ticker_symbols = vec!["NVDA", "GOOG", "AAPL", "MSFT", "BTC-USD"];
let portfolio = Portfolio::builder()
.ticker_symbols(ticker_symbols)
.benchmark_symbol("^GSPC")
.start_date("2023-01-01")
.end_date("2024-12-31")
.interval(Interval::OneDay)
.confidence_level(0.95)
.risk_free_rate(0.02)
.objective_function(ObjectiveFunction::MaxSharpe)
.build().await?;
portfolio.report(Some(ReportType::Performance)).await?.show()?;
Finalytics is also available in:
Finalytics — Modular, high-performance financial analytics in Rust.