3e28cef4bbd3af69e03e1289ead23777634aa162
Add `paracas job` subcommand for managing background downloads: - pause: suspend a running job with SIGSTOP - resume: continue a paused job with SIGCONT (respawns if needed) - kill: terminate a job with SIGTERM/SIGKILL - clean: remove finished jobs from storage Also show help menu when no subcommand is provided.
paracas
High-performance Rust CLI for downloading historical tick data from Dukascopy.
Features
- Fast: Concurrent downloads with connection pooling
- Flexible: CSV, JSON, and Parquet output formats
- Complete: All 1000+ Dukascopy instruments supported
- Aggregation: Built-in OHLCV aggregation (1m, 5m, 15m, 30m, 1h, 4h, 1d)
Installation
cargo install paracas
Usage
Download Tick Data
# Download all available EUR/USD tick data (outputs to eurusd.csv by default)
paracas download eurusd
# Download with specific date range
paracas download eurusd -s 2024-01-01 -e 2024-01-31
# Download BTC/USD as Parquet
paracas download btcusd -f parquet
# Download with 1-hour OHLCV aggregation
paracas download eurusd -s 2024-01-01 -e 2024-01-31 -t h1
# Specify custom output file
paracas download eurusd -o my_data.csv
List Instruments
# List all instruments
paracas list
# Filter by category
paracas list --category forex
# Search instruments
paracas list --search btc
Instrument Info
paracas info eurusd
Output Formats
| Format | Extension | Description |
|---|---|---|
| CSV | .csv |
Comma-separated values |
| JSON | .json |
JSON array |
| Parquet | .parquet |
Apache Parquet columnar format |
Timeframes
| Timeframe | Flag | Description |
|---|---|---|
| Tick | (default) | Raw tick data |
| 1 minute | -t m1 |
1-minute OHLCV bars |
| 5 minutes | -t m5 |
5-minute OHLCV bars |
| 15 minutes | -t m15 |
15-minute OHLCV bars |
| 30 minutes | -t m30 |
30-minute OHLCV bars |
| 1 hour | -t h1 |
1-hour OHLCV bars |
| 4 hours | -t h4 |
4-hour OHLCV bars |
| 1 day | -t d1 |
Daily OHLCV bars |
Performance
Benchmark comparing paracas against dukascopy-node for downloading EUR/USD tick data:
| Data Range | paracas | dukascopy-node | Speedup |
|---|---|---|---|
| 1 day | 5.24s | 8.26s | 1.6x |
| 3 days | 18.97s | 24.27s | 1.3x |
Benchmarks run on macOS (Apple Silicon). Results may vary based on network conditions.
Running Benchmarks
# Run benchmark and output markdown table
just bench-table
# Run criterion benchmarks
just bench
To compare against dukascopy-node, install it first:
npm install -g dukascopy-node
License
MIT License - see LICENSE for details.
Languages
Rust
98.1%
Just
1.9%