Scalable engine to ingest, process, and query large datasets—transactions, logs, events, and analytics—directly from flat files.
Project description
Flatseek
Full-text search over flat files and remote datasets. No JVM. No cluster. No operational overhead.
Explore, filter, and aggregate CSV/JSON like a spreadsheet with search-grade power — run locally or query directly from Public/HuggingFace datasets.
Demo: flatlens.demo.flatseek.io · Docs: flatseek.io/docs · Dashboard: flatlens · Benchmark: flatbench · Hosted Datasets: HuggingFace
Why Flatseek
-
Exact-by-design engine Query results are deterministic with full-count accuracy on flat files.
-
No infra required Run locally as a single binary or deploy as a lightweight API sidecar.
-
Millisecond search performance Built for interactive exploration over large datasets.
-
Portable single-file archives (
.fsk) Package entire indexed datasets into a single.fskarchive for easy sharing, backup, and transport. Move datasets across machines or environments without rebuilding indexes. -
Zero-ops distribution Store and query indexes directly from Hugging Face, S3, or Vercel Blob.
-
Instant dataset access Paste a dataset URL in Flatlens and start searching immediately — no ingestion pipeline needed.
-
Built-in analytics dashboard Spreadsheet-like experience with Kibana-style filtering, aggregation, and exploration — closer to Microsoft Excel for structured search workflows.
-
Developer-first embedding Use as a Python library or full API without running a cluster or managing nodes.
Performance
500K rows, article schema, SSD. Flatseek is 2× faster on search than Elasticsearch with exact counts where others silently miss.
| Metric | Flatseek | Elasticsearch |
|---|---|---|
| Search p50 | 7.9ms | 16.1ms |
| Range query hits | 501,011 (exact) | 505,044 |
| Build 500K rows | 216s | 113s |
Full comparison (tantivy, typesense, whoosh, zincsearch): docs/benchmark.md or bench.flatseek.io
Quick Start
# Install
curl -fsSL flatseek.io/install.sh | sh
# Build index
flatseek build ./data.csv -o ./data
# Serve API + dashboard
flatseek serve -d ./data
# Pack index into single portable file
flatseek pack ./data -o ./data.fsk
# Serve API + dashboard from single portable index file
flatseek serve data.fsk
# → API:
# http://localhost:8000
# → Dashboard:
# http://localhost:8000/dashboard
# Query
flatseek search ./data "program:raydium AND amount:>1000000"
# Query from single portable file
flatseek search data.fsk "program:raydium AND amount:>1000000"
# Export
flatseek export ./data "program:raydium AND amount:>1000000" -f jsonl --out exported.jsonl
flatseek export data.fsk "program:raydium AND amount:>1000000" -f jsonl --out exported.jsonl
# Serve a .fsk archive directly from HTTP URL — no full download needed
flatseek serve https://huggingface.co/datasets/owner/repo/resolve/main/data.fsk
Core Capabilities
- Full text search — tokenized, trigram-backed wildcard (
*kube*) - Range queries — exact counts on numeric, date, keyword fields
- Aggregations — terms, stats, min/max, cardinality, date histogram
- Array fields — matches any element (
tags:graphql) - Nested objects — dot-path queries (
address.city:Jakarta) - Boolean operators — AND, OR, NOT with grouping
- Encryption at rest — ChaCha20-Poly1305
- Parallel indexing — multi-worker builds
- Remote querying — search HuggingFace datasets without downloading
- REST API — Elasticsearch-compatible endpoints
- Single-file archive (
.fsk) — portable, cryptographically signed index file - Export to JSONL/CSV — streaming, with query filter and resume
- Slice — extract a query-matched subset as a new index
- Serve from HTTP URL — open
.fskfrom HuggingFace/S3 without full download
See docs/ for full details.
Search engine for public datasets instantly
Flatseek can query indexes hosted remotely — no need to deploy or pay for expensive storage infrastructure. Build your Flatseek index locally, upload it to any free-cheap publicly accessible storage service, and instantly search and aggregate data from anywhere.
Supported providers:
- HuggingFace Datasets / Buckets
- S3-compatible storage
- Vercel Blob
- Static HTTP hosting
Samples
Encrypted datasets are supported with per-request passphrases.
Large Public Datasets (Remote single fsk dataset, lower speeds)
| Dataset | Size | Rows | HuggingFace | Flatlens |
|---|---|---|---|---|
| 6.3M-books | 14.1 GB | 6.3M Books Dataset Goodreads | HF link | Load → |
| 1.2M-movies | 2.1 GB | 1.2M Movies Dataset TMDB | HF link | Load → |
| 5M-wikipedia | 1.39 GB | 5M Wikipedia articles | HF link | Load → |
| 1.2M-songs | 947 MB | 1.2M Spotify Tracks | HF link | Load → |
| 500k-startups | 600 MB | 500K ProductHunt launched 2013-2026 | HF link | Load → |
| 800k-domains | 539 MB | 800K WHOIS domain registration | HF link | Load → |
| 500k-actors | 84.2 MB | 500K Movie Actors | HF link | Load → |
| 271k-athletes | 75.6 MB | 271K Olympics Athletes 1800-2000 | HF link | Load → |
Million search-ready rows hosted free on flatseek/public-dataset (19.9 GB total). Query directly via HTTP Range — no full download needed.
Docs
| Guide | Description |
|---|---|
| Quick Start | Install, index, query — in 5 minutes |
| Indexing | Formats, column types, parallel builds, encrypt |
| Query Language | Full syntax reference |
| CLI Reference | All CLI commands |
| REST API | API endpoints |
| Remote Storage | HuggingFace, S3, Vercel Blob |
| Schemas | Supported Column Types |
| Architecture | Structural and behavioral map |
| Internals | Deep technical breakdown |
Install
Recommended — one-liner
curl -fsSL flatseek.io/install.sh | sh
Includes API server + Flatlens dashboard (http://localhost:8000/dashboard).
PyPI
pip install flatseek
CLI only. For Flatlens dashboard:
git clone https://github.com/flatseek/flatlens
From source
git clone https://github.com/flatseek/flatseek.git
cd flatseek
pip install -e .
Requirements: Python ≥ 3.10, macOS / Linux / WSL.
Contributing
PRs welcome. Run tests:
pytest src/flatseek/test/test_search.py -v # accuracy tests
pytest src/flatseek/test/test_api.py # API smoke tests
pytest src/flatseek/test/test_cli.py # CLI integration
License
Apache 2.0. See LICENSE.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file flatseek-0.1.8.tar.gz.
File metadata
- Download URL: flatseek-0.1.8.tar.gz
- Upload date:
- Size: 280.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e4e6e21cc2d6b8fb4a7b7f16947b3168713b903e434b4af13407f49725dfa210
|
|
| MD5 |
449fad8c9ad88a3a9307d0d58c3a802e
|
|
| BLAKE2b-256 |
a356475b78496975d0aa21cba1eacdb20a742447a7a060a08bc136887e45964c
|
Provenance
The following attestation bundles were made for flatseek-0.1.8.tar.gz:
Publisher:
publish.yml on flatseek/flatseek
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
flatseek-0.1.8.tar.gz -
Subject digest:
e4e6e21cc2d6b8fb4a7b7f16947b3168713b903e434b4af13407f49725dfa210 - Sigstore transparency entry: 2053470925
- Sigstore integration time:
-
Permalink:
flatseek/flatseek@bbd62d765068960f9485819c1ea11d85ce2f9613 -
Branch / Tag:
refs/tags/v0.1.8 - Owner: https://github.com/flatseek
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@bbd62d765068960f9485819c1ea11d85ce2f9613 -
Trigger Event:
release
-
Statement type:
File details
Details for the file flatseek-0.1.8-py3-none-any.whl.
File metadata
- Download URL: flatseek-0.1.8-py3-none-any.whl
- Upload date:
- Size: 245.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7ceac157836f2ac77d1b03197a7ca2ea2b2fd942984d46dec4bf5c284247ebde
|
|
| MD5 |
27e3c7fd5887c8cec0ef9f844d65d34f
|
|
| BLAKE2b-256 |
bac736f090c1f428b71329757d581f1146cd704b7e5c12511e0687abaa3722c6
|
Provenance
The following attestation bundles were made for flatseek-0.1.8-py3-none-any.whl:
Publisher:
publish.yml on flatseek/flatseek
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
flatseek-0.1.8-py3-none-any.whl -
Subject digest:
7ceac157836f2ac77d1b03197a7ca2ea2b2fd942984d46dec4bf5c284247ebde - Sigstore transparency entry: 2053472003
- Sigstore integration time:
-
Permalink:
flatseek/flatseek@bbd62d765068960f9485819c1ea11d85ce2f9613 -
Branch / Tag:
refs/tags/v0.1.8 - Owner: https://github.com/flatseek
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@bbd62d765068960f9485819c1ea11d85ce2f9613 -
Trigger Event:
release
-
Statement type: