30 releases
| 0.8.9 | Oct 5, 2025 |
|---|---|
| 0.8.2 | Jul 28, 2025 |
| 0.7.0 | Jan 9, 2025 |
| 0.6.0 | Aug 11, 2024 |
| 0.2.9 | Nov 26, 2023 |
#33 in Finance
2,704 downloads per month
420KB
8K
SLoC

Finalytics Rust Library
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.
🚀 Installation
Add the following to your Cargo.toml file:
[dependencies]
finalytics = "*"
Or run:
cargo add finalytics
🦀 Main Modules
Finalytics is organized around four core modules, each designed for a specific aspect of financial analytics:
1. Screener
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()?;
2. Ticker
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()?;
3. Tickers
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()?;
4. Portfolio
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()?;
📚 Documentation
- See the API documentation for full details.
🗂️ Multi-language Bindings
Finalytics is also available in:
Finalytics — Modular, high-performance financial analytics in Rust.
Dependencies
~75–100MB
~1.5M SLoC