lineofflight

lineofflight/frankfurter

Ruby MIT Finance

💱 Currency data API

1.7k stars
167 forks
active
GitHub +21 / week

1.7k

Stars

167

Forks

3

Open issues

16

Contributors

v2.3.5 25 Jun 2026

AI Analysis

Frankfurter is an open-source currency exchange rates API that aggregates daily institutional forex data from multiple central banks and financial institutions worldwide. It serves developers and fintech applications needing reliable, self-hostable currency conversion and historical rate lookups. Best suited for developers building financial applications, currency converters, or systems requiring institutional-grade exchange data; not a general-purpose API service.

Finance Application Discovery value: 6/10
Documentation 8/10
Activity 9/10
Community 7/10
Code quality 5/10

Inferred from signals mentioned in the README (tests, CI, type safety) — not a review of the actual code.

Overall score 8/10

AI's overall editorial judgment — not an average of the bars above, can weigh other factors too.

currency-api exchange-rates financial-data self-hosted ruby-backend
Actively maintained MIT licensed Niche/specialized use case Production ready
Deep Analysis · Based on README and public signals
2w ago

Open-source currency API aggregating daily rates from central banks and institutional sources

Frankfurter is a self-hostable currency data API that pulls exchange rates from multiple institutional sources (central banks, FRED, etc.) rather than relying on a single provider. It targets developers who need reliable, transparent exchange rate data without vendor lock-in. The public API at api.frankfurter.dev provides free access; users can also self-host via Docker. Real-world adoption appears modest but concentrated among developers seeking an alternative to commercial FX APIs.

Origin

Created in March 2018, Frankfurter emerged as a response to limitations in existing currency APIs — seeking to aggregate data from authoritative institutional sources rather than commercial vendors. The project has remained under active maintenance for 8 years, suggesting sustained belief in the problem it solves.

Growth

GitHub stars grew from 1,638 baseline with 23 new stars in the last 7 days (approximately 1,200/year extrapolated rate). Growth appears steady but modest, suggesting a stable niche audience rather than rapid adoption. The recent push (2026-06-25) indicates active maintenance rather than dormancy. No surge events or viral adoption indicators visible in available metadata.

In production

Adoption not verified in README. Public API endpoint (api.frankfurter.dev) is operational, indicating self-sustained production use by the maintainers. README mentions 'Show and Tell' discussions category and notes 'Built a library or tool with Frankfurter?' but provides no case studies, user counts, or deployment statistics. Enterprise adoption not evidenced.

Code analysis
Architecture

Based on README: Rails-like Ruby application with SQLite backend, Docker containerization, and pluggable data provider agents (Bank Al-Maghrib, Banco de México, FRED, etc.). Appears designed for distributed deployment with stateful database persistence. Multiple optional API key integrations suggest an agent-based architecture for fetching from different sources.

Tests

Not documented in README. No mention of test suite, CI/CD pipeline, or coverage metrics.

Maintenance

Last push 2026-06-25 (4 days ago from evaluation date 2026-06-29) indicates active ongoing development. Ruby language choice suggests long-term maintenance compatibility. README includes deployment and contribution guidelines (AGENTS.md referenced), implying structured development process. No evidence of abandonment or critical bug backlogs in metadata.

Honest verdict

ADOPT IF: you need a self-hosted FX data layer, prefer decentralized institutional sources over commercial vendors, can manage Docker/database operations, and accept modest performance/availability SLAs. AVOID IF: you require guaranteed high-availability SLAs, 24/7 support, or production-grade monitoring/alerting (likely not present). MONITOR IF: your application currently uses a commercial FX API and wants to evaluate long-term lock-in risk, or if you're building internal tooling where operational simplicity outweighs SaaS convenience.

Independent dimensions

Mainstream potential

3/10

Technical importance

6/10

Adoption evidence

3/10

Risks
  • Single maintainer risk: no visible team structure in README; project continuity depends on one person or small group.
  • Data freshness SLA unclear: README does not document update frequency, data lag, or guarantees around rate timeliness — critical for production FX systems.
  • Operational burden: self-hosted model requires ongoing database maintenance, API key management for multiple providers, and backfill logic debugging.
  • Limited real-world validation: adoption signals weak; unclear how many production systems depend on this, making reliability claims unverified.
  • Provider API churn risk: depends on 6+ third-party central bank APIs; changes to their authentication or availability directly impact Frankfurter without centralized control.
Prediction

Frankfurter will likely remain a stable, modestly-adopted niche tool for developers preferring self-hosted FX infrastructure. Unlikely to capture mainstream adoption unless (a) commercial FX APIs significantly raise prices/restrict terms, or (b) a major fintech/payments company adopts and promotes it. More probable path is slow growth as the default choice for privacy-conscious or cost-sensitive developers.

0 found this helpful

Newsletter

Get analyses like this every Monday

Free weekly digest of the most interesting open-source discoveries.

Languages

Ruby
99.8%
Dockerfile
0.2%
Procfile
0%

Information

Language
Ruby
License
MIT
Last updated
2d ago
Created
102mo ago
Analyzed with
anthropic/claude-haiku-4-5

Stars over time

Loading…

Contributors over time

Top 100 contributors only — repos with more will plateau at 100.

Loading…

Similar repos

RubyMoney

RubyMoney/money

RubyMoney/money is a mature Ruby library for handling monetary values and...

2.9k Ruby Finance
florianv

florianv/swap

Swap is a PHP library that abstracts currency conversion and exchange rate...

1.3k PHP Finance
faker-ruby

faker-ruby/faker

Faker is a Ruby library that generates realistic fake data including names,...

11.6k Ruby
fangzesheng

fangzesheng/free-api

A curated repository that aggregates free APIs from various third-party...

ffaker

ffaker/ffaker

ffaker is a Ruby gem that generates fake data for testing, serving as a...

1.6k Ruby Dev Tools
vs. alternatives
RubyMoney/money (2,874 stars)

Money handles currency arithmetic and formatting within applications; Frankfurter provides live FX rate data. Complementary rather than competitive — Money often consumes FX data from sources like Frankfurter.

Commercial FX APIs (e.g., Fixer, OpenExchangeRates, Twelve Data)

Frankfurter differentiates via decentralization (multiple institutional sources), self-hosting option, and no vendor lock-in. Trade-off: likely less optimized latency/availability than commercial SaaS, but lower cost and transparency.

Central bank direct APIs (FRED, ECB, etc.)

Frankfurter aggregates these; users must integrate each separately without Frankfurter. Offers convenience at the cost of additional infrastructure dependency.

Exchangerate-API, FreeCurrencyAPI

Similar free/freemium SaaS model. Frankfurter's self-hosting option and multi-source approach appeal to users avoiding SaaS dependencies, but these alternatives may have simpler onboarding.

ECB FX API (European Central Bank)

Covers primarily EUR-based rates; Frankfurter aims for global coverage via multiple central banks. Use-case dependent: ECB sufficient if EUR-centric, Frankfurter better for multi-region.