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

Download history 107/week @ 2025-09-30 32/week @ 2025-10-07 9/week @ 2025-10-14 2/week @ 2025-10-21

2,704 downloads per month

MIT license

420KB
8K SLoC

Finalytics

Crates.io Docs.rs License Homepage Crates.io


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


🗂️ Multi-language Bindings

Finalytics is also available in:


Finalytics — Modular, high-performance financial analytics in Rust.

Dependencies

~75–100MB
~1.5M SLoC