Specifications

Specifications and technical details

Everything under the hood. For the short version, see the homepage.

System

  • macOS 14.4 or later. Written in Swift, with no external runtimes: no Python, Node, or LaTeX.
  • File formats: .eqdata for data and .ebla for reports.
  • Imports CSV, TSV, XLSX, JSON, Parquet, and SQLite. Decoders cover Apache Parquet (PLAIN, Snappy, and ZSTD), SQLite3, JSON and NDJSON, OpenXML (.xlsx), and CSV.
  • Exports PDF, DOCX, and XLSX.
  • Shared library location: ~/Library/Application Support/EblaSuite/Library.
  • Send to Studio opens an ebla:// link.
  • Separate programs: ebla-compile and ebla-server.

Ebla Query

Relational modelling and a spreadsheet surface. The items below are the shipped Query checklist.

  • Typed columns with units and number formats.
  • A formula bar for the top 60 functions, including SUM, IF, VLOOKUP, and the finance set NPV, IRR, PMT, and FV.
  • An import preview of detected types, encodings, and bad rows.
  • Replayable steps: filter, drop, rename, fill down, and flash fill.
  • Pivot with values, percent of total, and running total.
  • Charts: histogram bins, a box plot, combo charts, and a trendline.
  • Pass, warn, or fail quality gates.
  • XLSX export writes numeric cells, a frozen header, and formulas.
  • Statistics: a mean, a confidence interval, a Welch test, and correlation. Linear regression reports slope, intercept, and R².
  • Each dataset gets a stable id and a hashed revision in the shared library. Send to Studio opens that revision.

Ebla Studio

Living reports, Word styles, and bound data. The items below are the shipped Studio checklist.

  • Named styles: Title, Heading 1–3, Normal, and Caption, including lists.
  • Numbered tables and figures, and cross-references such as “Table 1” or “Figure 1”.
  • A DOCX this app writes keeps Heading, Caption, and list styles. A general Word importer is not included.
  • BibTeX and RIS become APA or IEEE bibliography entries.
  • Tracked edits store author, time, and insert or delete text. Spelling uses the system checker.
  • Cmd-K filters commands, datasets, and pages. The slash menu inserts blocks. Page thumbnails and an audit checklist are in the editor.
  • Quick Look stores a preview PDF. Spotlight stores the title.
  • Shortcuts cover New Document, Open Document, and Compile Report.
  • Batch reports write one PDF per JSONL record.
  • Bound tables, scorecards, and charts follow a new revision. A pinned revision stays put, and a removed column is flagged on the page.
  • Code blocks run only inside the sandboxed helper, and only when you allow them.

Live sync details

Query writes a hashed revision under Application Support, with catalog.sqlite in WAL mode. Studio bindings refresh on a compatible change, keep manual formatting, flag a removed column, and leave a pinned revision alone. Send to Studio opens an ebla:// link.

  • Pin a revision and that block stays put.
  • A removed column is flagged on the page.
  • You can choose to review a large update before it applies.
  • Query can show which reports depend on a dataset.
  • Each publish is stored as its own revision.

Measured numbers

  • A 20,000-row typed window in under 1 second.
  • Command-palette filtering in under 100 milliseconds.

Cold launch, a million-row scroll, and a reports-per-hour figure are not published. A reports-per-hour figure has not been recorded. Cold launch, 100k-row import, and million-row scroll are not yet published.

Preview tools

These tools exist in the codebase. They are not on the signed-off test list. Treat each one as unfinished until it has been checked in the running app.

  • In preview Advanced SQL: WITH CTEs, QUALIFY, ASOF JOIN, PIVOT, ROLLUP, window functions (OVER, DENSE_RANK, NTILE), and STRING_AGG.
  • In preview Fuzzy merge (Levenshtein).
  • In preview Column from examples (flash fill inference).
  • In preview Keyed table-to-table diff.
  • In preview Directory folder union, plus unpivot and fill down or up.
  • In preview JSON dotted flatten and explode.
  • In preview Knuth-Plass line breaking, Frank Liang hyphenation, and optical margins. Named OpenType and MathML engines are not in this build.
  • In preview HTML, EPUB, and Markdown export.
  • In preview PDF/UA preflight, including a tag tree and an offline preflight report.
  • In preview Sequential Bates numbering.
  • In preview Redaction rules.
  • In preview 2-up saddle-stitch booklet imposition.
  • In preview Brand kit tokens.
  • In preview DXF and CAD markups: scale calibration, area takeoffs, and overlay diff.
  • In preview Secure Enclave PDF signing.
  • In preview Merkle audit trail with inclusion proofs.
  • In preview Gantt blocks.
  • In preview Headless REST server (ebla-server on port 8082).
  • In preview Visual QA diff.
  • In preview Semantic model relationships and virtual RELATED lookups. Many-to-one document relationships and auto-key detection are in the same area.
  • In preview Document-wide find and replace.

Known limits

  • No general Word (.docx) import.
  • No real-time collaboration. Comments stay inside the .ebla file.
  • No native equation rendering. Named OpenType and MathML engines are not in this build.
  • No multi-sheet workbook model.
  • No data validation.
  • No DuckDB.
  • In-app auto-update is not yet active.
  • A notarized disk image has not been produced. The apps are not sandboxed and are not on the Mac App Store.

Compared with other toolchains

Notes carried from the previous page, set against LaTeX compilers and Python or Electron wrappers. Cells marked “In preview” are not a test sign-off.

Specification Ebla Suite LaTeX / TeX CLI Python / Electron
External dependencies None in the app. Swift, with no Python, Node, or LaTeX runtime. A TeX distribution Chromium, Node.js, and Python
Shared library Hashed revisions, live bindings, pin Copy and paste File dumps or a server
Spreadsheet Formula bar, pivot, typed XLSX Not a grid pandas or a web grid
Document review Styles, citations, track changes, spelling Macros and packages Browser spellcheck
Finder Quick Look Preview.pdf and a thumbnail in the package None None
Typography and line breaking In preview Knuth-Plass line breaking and hyphenation Knuth-Plass Browser line breaking
Export PDF and DOCX. In preview HTML, EPUB, and Markdown DVI or PDF Chromium print
CAD annotations In preview DXF, calibrated scale, punch lists Custom drawing packages Unsupported
File fingerprint SHA-256, computed on device for a file you choose Manual hashing Third-party packages

File fingerprint (SHA-256)

Drop a PDF or .ebla package to compute its SHA-256 digest in this browser. Nothing is uploaded, and the digest is not checked against a published value.

Drop a .pdf or .ebla package here

The digest is computed in your browser.

Browse files

Waiting for a file SHA-256

Choose a file to compute its SHA-256 digest. Nothing leaves this device.