High-performance file processing

Process files faster.
Simplify your data.

A production-oriented API for spreadsheets and PDFs, with OCR, validation, transformation, and batch processing. Built with Rust and a React admin panel.

quick start · localAPI READY
$ curl -X POST localhost:8085/api/process?max_rows=5 \
  -H 'x-api-key: dev-key' \
  -F 'file=@orders.xlsx'
{
  "columns": ["order_id", "customer", "amount"],
  "data": [ ... ],
  "timings": { ... }
}
parse → inspect → use● JSON response
Rust · fast processingAPI-first · easy to integrateSelf-hosted · your infrastructureOpen source · MIT
One API, many workflows

From raw files
to useful data.

Process a single upload or build repeatable pipelines. Filers keeps the heavy file work behind a simple HTTP interface.

01 / PARSE

Spreadsheets and CSV

Read XLSX, XLS, ODS, and CSV into structured JSON, with profiling, statistics, and timing information.

02 / SHAPE

Validate and transform

Check schemas, cast and filter values, select or rename columns, compare files, and compose processing pipelines.

03 / DOCUMENTS

PDF and OCR

Inspect and manipulate PDFs; optionally extract structured data or recognize image text with a configured vision model.

04 / AUTOMATE

Batch jobs

Process batches in the background, inspect job history, download results, and receive signed completion webhooks.

05 / INTEGRATE

Authentication built in

Use service keys or OAuth2 client credentials for integrations, and a secure session-based admin panel for operators.

06 / OPERATE

Production-minded

Optional Postgres persistence, Redis-backed rate limits, OpenAPI docs, health probes, and Docker Compose deployment.

Small surface, clear boundaries

Built to fit your stack.

A self-hosted service with a focused API. Keep your current application and delegate file processing to Filers.

Rust API

Axum and Tokio expose processing and admin APIs. Domain and application layers are separated from HTTP and repository adapters.

React admin

Vite, React, TanStack Query and Table power the operator experience for activity, users, access control, and jobs.

Data and storage

Postgres persists users, clients, RBAC, and jobs. Redis can share rate-limit counters. Batch artifacts live on a mounted volume.

Deploy your way

Use Docker Compose behind Nginx, or run the API and frontend separately. DATABASE_URL and REDIS_URL are configurable.

Start with the API.

Run the development stack with Docker, try the sample request, and adapt the endpoints to your workflow.