finance-query 2.1.0

A Rust library for querying financial data
docs.rs failed to build finance-query-2.1.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build: finance-query-2.0.1

Crates.io Documentation CI License: MIT

Rust library, CLI, and HTTP server for querying financial data.

Hosted API

Free hosted version at finance-query.com:

# Get a quote
curl "https://finance-query.com/v2/quote/AAPL"

# Real-time streaming
wscat -c "wss://finance-query.com/v2/stream"

What's in This Repository

  • Library (finance-query) - Rust crate for programmatic access to Yahoo Finance
  • CLI (finance-query-cli) - Command-line tool for market data, technical analysis, and backtesting
  • Server (finance-query-server) - HTTP REST API and WebSocket server
  • Derive Macros (finance-query-derive) - Procedural macros for Polars DataFrame integration

Quick Start

Library

Add to your Cargo.toml:

[dependencies]
finance-query = "2.0"

# Or with DataFrame support (Polars integration)
finance-query = { version = "2.0", features = ["dataframe"] }

Basic usage:

use finance_query::Ticker;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let ticker = Ticker::new("AAPL").await?;
    let quote = ticker.quote(true).await?;
    println!("{}: ${}", quote.short_name, quote.regular_market_price);
    Ok(())
}

CLI

Install fq (the command-line tool):

# Pre-built binary (Linux/macOS)
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/Verdenroz/finance-query/releases/latest/download/finance-query-cli-installer.sh | sh

# Or from crates.io
cargo install finance-query-cli

Quick examples:

fq quote AAPL MSFT GOOGL          # Get quotes
fq stream AAPL TSLA NVDA          # Live prices
fq chart AAPL -r 6mo              # Interactive price chart
fq indicator AAPL --indicator rsi:14  # Technical indicators
fq backtest AAPL --preset swing   # Strategy backtesting
fq dashboard                      # Market dashboard
fq alerts add AAPL price-above:200  # Price alerts with notifications

See finance-query-cli/README.md for full documentation.

Server

Run the server locally (requires Rust):

git clone https://github.com/Verdenroz/finance-query.git
cd finance-query
make serve  # Compiles and runs v2 server

Or run both v1 and v2 with Docker Compose:

make docker-compose  # Starts v1 (port 8002), v2 (port 8001), Redis, and Nginx

The v2 server provides REST endpoints at /v2/* and WebSocket streaming at /v2/stream.

Documentation

Package guides:

  • CLI - Command-line tool with examples, installation, and features
  • Server - REST API and WebSocket server setup and endpoints
  • Derive Macros - Procedural macros for Polars DataFrame support

Full documentation at verdenroz.github.io/finance-query:

API Documentation:

Legacy Python Version (v1)

The original Python implementation is available in the v1/ directory. It is no longer actively maintained but remains available for reference.

Contributing

We welcome contributions! See the Contributing Guide for setup instructions and development workflow.

make install-dev  # Set up development environment
make test-fast    # Run tests
make fix          # Auto-fix formatting and linting

Acknowledgements

This project relies on Yahoo Finance's publicly available data. We are grateful to Yahoo for providing this data.

Special thanks to yfinance, the popular Python library that inspired this project. Many of the API patterns and data structures are adapted from yfinance's excellent work.

License

MIT License - see LICENSE for details.