DEV.co
Open-Source Databases · fugue-project

fugue

Fugue is a Python library that lets you write data processing code once and run it on multiple distributed computing backends (Spark, Dask, Ray) without rewrites. It supports Python functions, Pandas, SQL, and Polars DataFrames, making it easy to scale local code to production systems.

Source: GitHub — github.com/fugue-project/fugue
2.2k
GitHub stars
101
Forks
Python
Primary language
Apache-2.0
License (OSI-approved)

Key facts

Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.

FieldValue
Repositoryfugue-project/fugue
Ownerfugue-project
Primary languagePython
LicenseApache-2.0 — OSI-approved
Stars2.2k
Forks101
Open issues53
Latest releasev0.9.7 (2026-02-20)
Last updated2026-05-19
Sourcehttps://github.com/fugue-project/fugue

What fugue is

Fugue provides a unified API (transform, load, save, etc.) and FugueSQL dialect that abstract away backend-specific APIs. Code runs on Pandas locally by default and can execute on Spark, Dask, or Ray via engine_context(), eliminating boilerplate conversion and schema handling.

Quickstart

Get the fugue source

Clone the repository and explore it locally.

terminalbash
git clone https://github.com/fugue-project/fugue.gitcd fugue# follow the project's README for install & configuration

Need it deployed, integrated, or customized instead? DEV.co ships production installs.

Best use cases

Scaling existing Pandas/Python pipelines

Convert single-machine data workflows to distributed execution without rewriting business logic. Ideal for teams with Pandas expertise migrating to Spark or Dask.

Multi-backend data workflows

Build once, test locally on Pandas, then switch to Spark/Dask/Ray for production with minimal code changes. Useful for organizations evaluating or migrating between distributed platforms.

Hybrid SQL and Python ETL

Use FugueSQL to define end-to-end workflows combining standard SQL with custom Python transformations, running on any backend without dialect rewrites.

Implementation considerations

  • Fugue SQL requires the [sql] extra; install via pip install fugue[sql]. Core distributed engine support (spark, dask, ray, duckdb, polars) is optional via extras.
  • Schema declaration is mandatory for distributed execution (e.g., schema="*" or explicit column definitions); this differs from local Pandas development.
  • Functions must accept and return Pandas DataFrames or compatible types; stateful or closure-heavy code may not parallelize cleanly.
  • Performance depends on backend configuration (Spark memory, Dask worker setup, Ray cluster size); Fugue does not auto-tune these.
  • Type hints are recommended for clarity; Fugue uses them to infer or validate schemas at runtime.

When to avoid it — and what to weigh

  • Deep framework-specific optimization needed — If you require fine-grained tuning of Spark partitioning, RDD operations, or Dask task graphs, Fugue's abstraction layer may be limiting.
  • Graph or streaming analytics primary use case — Fugue is designed for batch data processing. Not suitable for real-time streaming or complex graph computation workflows.
  • Highly heterogeneous data pipeline — If your workflow mixes multiple incompatible backends or requires hand-crafted integration logic, Fugue's unified interface provides limited benefit.
  • Very large, stable codebase already optimized for one engine — Refactoring mature production systems to Fugue may introduce maintenance overhead unless multi-backend portability is a strategic goal.

License & commercial use

Fugue is licensed under Apache License 2.0, a permissive OSI-approved license allowing commercial use, modification, and distribution with minimal restrictions.

Apache 2.0 permits commercial use without license fees or vendor permission. Ensure compliance with the license terms (attribution, retain license notice). No guarantee of vendor support; consult commercial support options independently.

DEV.co evaluation signals

Editorial assessment — not user reviews. Directional, with an explicit confidence level.

SignalAssessment
MaintenanceActive
DocumentationStrong
License clarityClear
Deployment complexityLow
DEV.co fitStrong
Assessment confidenceHigh
Security considerations

No security posture details provided in available data. Standard considerations: vet code execution in untrusted environments, audit Fugue and backend dependencies for vulnerabilities, control access to data and cluster credentials. Fugue itself does not implement encryption or secrets management; rely on backend security (Spark, Dask, Ray) and host infrastructure.

Alternatives to consider

PySpark / pyspark.sql

Native Spark API; deeper optimization and ecosystem support. Requires Spark expertise and code rewrite; no multi-backend portability.

Ibis

Abstraction layer for analytics backends (Spark, DuckDB, Pandas, etc.). More SQL-centric; less Python function integration than Fugue.

dbt

Mature data transformation framework for datalakes and warehouses. SQL-first; not designed for custom Python logic or distributed Python execution.

Software development agency

Build on fugue with DEV.co software developers

Evaluate Fugue for your team's multi-backend strategy. Start with a Pandas prototype, scale to Spark or Dask, and maintain one codebase.

Talk to DEV.co

Related open-source tools

Surfaced by semantic similarity across the DEV.co open-source index.

Related on DEV.co

Explore the category and the services that help you build with it.

fugue FAQ

Can I use Fugue with existing Pandas code without rewriting it?
Yes. Wrap Pandas functions in Fugue's transform() and pass them to Spark/Dask/Ray via engine_context(). The function signature and logic remain unchanged.
Do I need to install all extras (spark, dask, ray)?
No. Install only the extras for backends you use. For FugueSQL, install the [sql] extra. Fugue will auto-detect Spark/Dask/Ray if already installed separately.
What happens if I run Fugue code without specifying an engine?
It defaults to Pandas execution on the local machine. This is useful for testing and debugging before switching to a distributed backend.
Is there commercial support available?
Not clearly stated in available data. Check fugue-project/fugue GitHub or slack.fugue.ai for community support and sponsorship details.

Software development & web development with DEV.co

DEV.co is a software development agency delivering custom software development services to companies building on open source. Our software developers and web developers design, integrate, and ship production systems — spanning web development, APIs, AI, data, and cloud. If fugue is part of your open-source databases roadmap, our team can implement, customize, migrate, and maintain it.

Unify your data pipeline across engines

Evaluate Fugue for your team's multi-backend strategy. Start with a Pandas prototype, scale to Spark or Dask, and maintain one codebase.