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. No JVM. No cluster. No ops burden.
Search, filter, and aggregate CSV/JSON visually — no setup required.
Demo: flatlens.demo.flatseek.io · Docs: flatseek.io/docs · Benchmark: flatbench
Why Flatseek
- Correct always. Every query returns exact counts. No silent wrong results.
- Single binary. No JVM, no cluster config, no heap tuning.
- Fast enough. p50 2.2ms handles production traffic.
- Embed or serve. Use as a library or run as a sidecar API.
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): bench.flatseek.io
Quick Start
# 1. Install
curl -fsSL flatseek.io/install.sh | sh
# 2. Build index
flatseek build ./data.csv -o ./data
# 3. Serve API + dashboard
flatseek serve -d ./data
# → API: http://localhost:8000
# → Dashboard: http://localhost:8000/dashboard
# 4. Query
flatseek search ./data "program:raydium AND amount:>1000000"
No config files. No cluster.
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
See docs/ for full details.
Docs
| Guide | Description |
|---|---|
| Quick Start | Install, index, query — in 5 minutes |
| Indexing | Formats, column types, parallel builds, encrypt |
| Query Language | Full syntax reference |
| Aggregation | Aggregation types and examples |
| CLI Reference | All CLI commands |
| REST API | API endpoints |
| Architecture | How Flatseek stores and queries data |
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 (~110 cases)
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.2.tar.gz.
File metadata
- Download URL: flatseek-0.1.2.tar.gz
- Upload date:
- Size: 149.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f85fe3c621210b93df97c2e9ba62b15eabf2d10e0868ac0007f885d103b02c3b
|
|
| MD5 |
fa80f41e5d477ebe57ba842d307570aa
|
|
| BLAKE2b-256 |
c3ebc2fa9f90fad3ef9438f29eae22c92961df84bfb965e5776122ee89dab42b
|
Provenance
The following attestation bundles were made for flatseek-0.1.2.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.2.tar.gz -
Subject digest:
f85fe3c621210b93df97c2e9ba62b15eabf2d10e0868ac0007f885d103b02c3b - Sigstore transparency entry: 1417618642
- Sigstore integration time:
-
Permalink:
flatseek/flatseek@528518859ef9ca17f35621518627175f5ca28809 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/flatseek
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@528518859ef9ca17f35621518627175f5ca28809 -
Trigger Event:
release
-
Statement type:
File details
Details for the file flatseek-0.1.2-py3-none-any.whl.
File metadata
- Download URL: flatseek-0.1.2-py3-none-any.whl
- Upload date:
- Size: 157.5 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 |
c971d74cb60c7ef13e34a11c4fac362f1badf6523125a678be081f568a88e7e2
|
|
| MD5 |
39d95ad41bea19328ccd7807cf7fa43c
|
|
| BLAKE2b-256 |
de3d9ac5fa48f444ebab6c8c02b18f448ecb5fccaeac9279a9306399bc195ad8
|
Provenance
The following attestation bundles were made for flatseek-0.1.2-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.2-py3-none-any.whl -
Subject digest:
c971d74cb60c7ef13e34a11c4fac362f1badf6523125a678be081f568a88e7e2 - Sigstore transparency entry: 1417618643
- Sigstore integration time:
-
Permalink:
flatseek/flatseek@528518859ef9ca17f35621518627175f5ca28809 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/flatseek
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@528518859ef9ca17f35621518627175f5ca28809 -
Trigger Event:
release
-
Statement type: