Ecosystem
Docs GitHub
Ecosystem

The complete
SDF infrastructure
stack

Six packages across three languages, one open specification, and a full server runtime. Everything you need to produce, distribute, validate, sign, and consume Smart Document Format files — from a single npm install to a self-hosted enterprise deployment.

Read the docs View on GitHub
6
packages
3
languages
1,200+
spec lines
17
spec sections
7
doc types
CC-BY
spec license

One format. One flow.

SDF is a ZIP container. Producers bundle a human PDF and machine JSON together, sign the archive, and distribute it. Consumers call parse() once and get typed, validated data — no OCR, no regex.

01
Produce
Create the SDF file

Provide your JSON data + existing PDF, or generate the PDF from the data. The SDK assembles the ZIP and signs it with your private key.

sdf-kit (TypeScript)
etapsky-sdf (Python)
sdf-cli
REST API
SDF
The file
invoice.sdf

A ZIP archive with a .sdf extension. Four layers, always the same structure.

invoice.sdf (ZIP)
├── visual.pdf   ← human
├── data.json    ← machine
├── schema.json  ← validate
└── meta.json    ← identity
02
Consume
Parse anywhere

Recipients call parse() once. Schema-validated, fully typed structured data comes back. Verify the signature offline, 20 years from now.

Zero OCR
Zero re-keying
Offline verification
< 50ms p99

Six packages, one monorepo

Every package is independently versioned and installable. Start with sdf-kit for TypeScript, etapsky-sdf for Python, or the CLI for scripting.

TypeScript v0.2.2
@etapsky/sdf-kit

Core producer, reader, validator, and signer. The primary TypeScript/JavaScript library for every SDF operation.

$ npm install @etapsky/sdf-kit
Node 20Node 22BrowserElectron
TypeScript v0.3.2
@etapsky/sdf-cli

Full-featured CLI: inspect, validate, sign, verify, keygen, wrap, convert, schema. Homebrew tap and binary releases for macOS, Linux, Windows.

$ npm install -g @etapsky/sdf-cli
macOSLinuxWindows
TypeScript v0.1.1
@etapsky/sdf-schema-registry

Schema lifecycle management: diff engine, migration planner, and offline bundle support. JSON Schema Draft 2020-12 throughout.

$ npm install @etapsky/sdf-schema-registry
Node 20Node 22
TypeScript v0.1.6
@etapsky/sdf-server-core

Fastify 5 server with multi-tenant REST API, BullMQ async queue, S3/MinIO storage, per-tenant rate limiting, and ERP connectors.

$ npm install @etapsky/sdf-server-core
Node 20Node 22Docker
Python v0.1.1
etapsky-sdf

Full-featured Python SDK with producer, reader, validator, and signer. Feature parity with the TypeScript SDK for data science and backend Python workflows.

$ pip install etapsky-sdf
Python 3.9+PyPI
CC-BY 4.0 v1.0
SDF Specification

17 sections, 1,200+ lines. The normative reference for any SDF implementation. Covers container format, signing, schema bundling, verification, and conformance.

$ docs.etapsky.com/sdf/spec
PDFHTMLMarkdown

Plugs into your stack

sdf-server-core ships with production-ready adapters for the most common enterprise infrastructure layers.

Storage
Amazon S3 — native presigned URLs, multipart upload
MinIO — self-hosted S3-compatible object store
Cloudflare R2 — zero-egress S3-compatible edge storage
Any S3-compatible — custom endpoint via env config
Queue & Async
BullMQ — Redis-backed job queue for async validation
Redis 7+ — queue backend, rate limit counters, pub/sub
Webhook delivery — retry-with-backoff on every event
Dead letter queue — failed job capture and manual replay
API & Server
Fastify 5 — schema-validated routes, plugin isolation
OpenAPI 3.1 — auto-generated spec from route schemas
Multi-tenancy — per-tenant schema isolation and API key auth
Rate limiting — per-tenant sliding-window rate limits
ERP & Finance
SAP S/4HANA — invoice and PO ingest via OData v4
Oracle Fusion Cloud — REST adapter for AP automation
Generic webhook — push parsed data to any HTTP endpoint
CSV / flat-file export — fallback for legacy ERP pipelines

The normative reference

The SDF Format Specification is the source of truth for every implementation. Any conforming producer and consumer can interoperate, regardless of SDK language or version.

17 sections — 1,200+ normative lines covering every aspect of the format
JSON Schema Draft 2020-12 — Schema layer uses the latest JSON Schema draft
ECDSA-P256 + RSA-2048 — Two signing algorithms via Web Crypto API primitive
CC-BY 4.0 — Open license — implement freely in any language or product
7 reference examples — Invoice, PO, nomination, tax, customs, permit, health
Offline verification — Verify signatures with no network dependency, ever
Read the spec Download PDF
Table of contents — 17 sections
  1. 01 Container Format
  2. 02 File Layout
  3. 03 Visual Layer (PDF)
  4. 04 Data Layer (JSON)
  5. 05 Schema Layer
  6. 06 Meta Layer
  7. 07 Identity & Provenance
  8. 08 Signing Algorithm
  9. 09 Verification Protocol
  10. 10 Offline Verification
  11. 11 Schema Bundling
  12. 12 Migration Paths
  13. 13 Multi-document Collections
  14. 14 Streaming Parsing
  15. 15 Error Codes
  16. 16 Reference Examples
  17. 17 Conformance

Signed. Verifiable. Offline-first.

Every SDF file is cryptographically signed at production time. Verification requires no network call — the schema and signature are bundled inside the archive.

ECDSA-P256

Default signing algorithm. Compact signature, hardware-accelerated on modern CPUs via Web Crypto API.

RSA-2048

Legacy-compatible signing for enterprises that require RSA. Drop-in alternative via config.

Offline verification

The schema bundle inside the archive means consumers can verify 20 years from now with no network call.

Key management

Generate, rotate, and revoke keys via the CLI or REST API. Per-tenant key isolation in server deployments.

What's coming next

The TypeScript and Python SDKs are stable and production-ready. Additional language SDKs and the ISO standardization process are underway.

Go SDK github.com/etapsky/sdf-go
Q2 2026
.NET / C# SDK Etapsky.SdfClient
Q3 2026
Rust SDK etapsky-sdf (crates.io)
Q3 2026
Java / Kotlin SDK com.etapsky:sdf-kit
Q4 2026
ISO Standardization ISO/TC 154 submission
H2 2026
Open for enterprise evaluation

Ready to integrate?

Start with npm install @etapsky/sdf-kit — open source, works offline. For hosted infrastructure or enterprise support, reach the team.

Start building Contact for enterprise