DEV.co
Open-Source Databases · x2bool

xlite

XLite is a SQLite extension written in Rust that lets you query Excel (.xlsx, .xls) and Open Document (.ods) spreadsheets using SQL. It creates virtual tables in SQLite, enabling standard SQL operations like SELECT, GROUP BY, and JOIN on spreadsheet data without converting files.

Source: GitHub — github.com/x2bool/xlite
1.3k
GitHub stars
50
Forks
Rust
Primary language
MIT
License (OSI-approved)

Key facts

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

FieldValue
Repositoryx2bool/xlite
Ownerx2bool
Primary languageRust
LicenseMIT — OSI-approved
Stars1.3k
Forks50
Open issues3
Latest releasev0.2.1 (2025-03-09)
Last updated2025-03-09
Sourcehttps://github.com/x2bool/xlite

What xlite is

XLite implements a SQLite virtual table module that reads spreadsheet files and exposes their data as queryable tables. It supports range selection, custom column naming, and multi-platform binaries (Linux, Windows, macOS across x86, x86-64, ARM64), but does not support INSERT, UPDATE, or DELETE operations.

Quickstart

Get the xlite source

Clone the repository and explore it locally.

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

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

Best use cases

Read-Only Data Analysis

Query Excel reports, financial sheets, or CSV-equivalent spreadsheets using SQL aggregations, filtering, and joins without importing into a database.

ETL Preprocessing

Extract and transform spreadsheet data in a data pipeline before loading into a data warehouse or data lake, using SQL for complex filtering and joining.

Ad-Hoc Reporting

Enable business users or analysts to run SQL queries against Excel files directly via SQLite CLI or application integration, avoiding manual exports or database setup.

Implementation considerations

  • Load the extension into SQLite via .load command; prebuilt binaries available for major platforms, or compile from Rust source using cargo build --release.
  • Use RANGE parameter to skip headers or select specific row/column ranges; COLNAMES option allows pulling column names from a designated spreadsheet row.
  • Read-only design means data flows one direction (spreadsheet → SQLite table); plan for data export/sync if bidirectional updates are needed.
  • Test with your specific file formats (.xlsx, .xls, .ods) and spreadsheet complexity; no documented limitations on file size or row count.
  • Virtual table creation requires explicit CREATE VIRTUAL TABLE statements; integrate this into application initialization or query wrapper logic.

When to avoid it — and what to weigh

  • Write Operations Required — XLite does not support INSERT, UPDATE, or DELETE. If you need to modify spreadsheet data programmatically, this is not suitable.
  • Large-Scale High-Performance Workloads — No benchmarks provided. For mission-critical analytics or real-time queries on massive datasets, evaluate performance and consider dedicated OLAP solutions.
  • Complex Spreadsheet Structures — XLite handles basic row-column layouts. If spreadsheets contain merged cells, complex formulas, pivot tables, or non-tabular layouts, suitability is Unknown.
  • Strict Security or Compliance Requirements — Project is described as experimental and maintained as a hobby. Audit and penetration testing status are unknown; unsuitable for regulated environments without deep review.

License & commercial use

XLite is licensed under the MIT License, a permissive OSI-approved license permitting commercial and proprietary use, modification, and distribution with attribution.

MIT License permits commercial use. However, the README explicitly states this is an experimental hobby project maintained in free time. For production commercial deployments, engage the maintainer or conduct a thorough code/security review and establish your own support plan.

DEV.co evaluation signals

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

SignalAssessment
MaintenanceActive
DocumentationAdequate
License clarityClear
Deployment complexityLow
DEV.co fitPossible
Assessment confidenceHigh
Security considerations

Unknown. No security audit, vulnerability disclosure policy, or threat model documented. File loading mechanisms and SQL parsing should be reviewed before use with untrusted spreadsheet files. Experimental status and hobby maintenance suggest caution in regulated/high-security environments.

Alternatives to consider

Apache Arrow + Parquet with SQL engines (DuckDB, Polars)

Modern columnar formats with first-class SQL support, better performance for analytics, and active enterprise backing.

Python Pandas + SQL (Dask, Ibis)

More mature ecosystem, easier data transformation, better error handling, and established community support for spreadsheet querying.

Native Excel/ODS database connectors (ODBC, JDBC drivers)

Official or third-party drivers may offer more stability, write support, and compatibility with existing BI tools.

Software development agency

Build on xlite with DEV.co software developers

If you need to run SQL queries on Excel or ODS files without a database, XLite offers a lightweight, open-source option. Verify compatibility with your use case and review the experimental status before production deployment.

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.

xlite FAQ

Can I modify spreadsheet data via XLite?
No. XLite only supports read operations (SELECT). INSERT, UPDATE, and DELETE are not supported. You must modify the original file or use a different tool.
What spreadsheet formats are supported?
Excel (.xlsx, .xls) and Open Document spreadsheets (.ods). CSV or other text formats are not mentioned.
Do I need to compile XLite, or can I use prebuilt binaries?
Prebuilt binaries are available for Linux (x86, x86-64, ARM64), Windows (x86, x86-64), and macOS (x86-64, ARM64). Compilation is optional if your platform is covered.
Is XLite suitable for production use?
Proceed with caution. It is maintained as an experimental hobby project. Conduct thorough testing and security review before deploying to production. No SLA or official support.

Work with a software development agency

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 xlite is part of your open-source databases roadmap, our team can implement, customize, migrate, and maintain it.

Evaluate XLite for Your Data Pipeline

If you need to run SQL queries on Excel or ODS files without a database, XLite offers a lightweight, open-source option. Verify compatibility with your use case and review the experimental status before production deployment.