Releases: letehaha/currency-rates
Releases · letehaha/currency-rates
v0.2.1
v0.2.0 - Automatic Database Seeding
What's New
Automatic seeding on first start
The server now automatically seeds historical data from bundled files when the database is empty. This eliminates the need to run a separate seeding step before starting the
service.
- Seeds ~250k records from ECB and NBU (1999-present)
- Subsequent sync only fetches the info that seeds lack, effectively reducing initialization time and Network usage
- Controlled via
SEED_ON_STARTUPenv variable (default:true)
Other changes
- Improved README with cleaner structure and documentation
- Reduced default log verbosity (tower_http debug → info)
- Removed separate
seed-dbDocker service (no longer needed)
Configuration
New environment variable:
| Variable | Default | Description |
|---|---|---|
SEED_ON_STARTUP |
true |
Seed database from bundled files if empty |
Upgrade notes
No breaking changes. Existing databases will continue to work — seeding only runs when the database is empty.
Initial release
🎉 USD Currency Rates API - Initial Release
✨ Features
- 🌍 Multiple Data Providers: Integrated support for ECB (European Central Bank) and NBU (National Bank of Ukraine)
- 💱 38 Unique Currencies: Comprehensive coverage with all rates converted to USD base
- 📅 Historical Data: Full history dating back to 1999 from ECB and NBU
- 🗄️ SQLite Storage: Lightweight, file-based database for efficient storage and retrieval
- ⏰ Automatic Sync: Scheduled updates via configurable cron expressions
- 🔌 Extensible Architecture: Easy to add new data providers
🚀 API Endpoints
- GET /latest - Get latest exchange rates
- GET /{date} -
yyyy-mm-dd- Get historical rates for a specific date - GET /{start}..{end} - Get time series data
- GET /currencies - List all supported currencies with date ranges
- GET /health - Health check endpoint
- POST /sync - Manual sync trigger
💻 Key Capabilities
- Query parameters for currency conversion (from, to, amount)
- Weekend/holiday gap filling for ECB data
- Database seeding for faster setup
- Docker support with docker compose
- Configurable via environment variables
Full Changelog: Initial release