Skip to content

Releases: letehaha/currency-rates

v0.2.1

10 Dec 00:44
1f83a31

Choose a tag to compare

What's Changed

🐛 Bug Fixes

  • Graceful shutdown handling - Server now properly handles SIGTERM and Ctrl+C signals for clean container shutdown. See #5

Full Changelog: v0.2.0...v0.2.1

v0.2.0 - Automatic Database Seeding

09 Dec 23:05
606a1e9

Choose a tag to compare

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_STARTUP env variable (default: true)

Other changes

  • Improved README with cleaner structure and documentation
  • Reduced default log verbosity (tower_http debug → info)
  • Removed separate seed-db Docker 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

28 Nov 15:49
61b9a31

Choose a tag to compare

🎉 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