DSL for table data analysis — with 2-click .exe export. No Python. No PyInstaller. No dependency hell.
ArrayVator is a domain-specific language for analyzing table data. You write in a readable syntax and get results like from SQL + Python + Excel — without needing to know all three.
Key ideas:
- 📊 Table operations — matrices, vectors, slices
- 🚀 Two engines — Matrix (RAM) and DuckDB (Big Data)
- 🧠 Smart help — autocomplete + built-in help panel
- 💬 Clear errors — with hints on how to fix
- ⚡ 2-click .exe export — package your script into a standalone executable
Write your script → press Tools → Export to EXE → get a standalone .exe.
That's it. No Python, no PyInstaller, no .spec files, no DLL hunting.
- Save your code as
.arrvin the editor (Ctrl+S) - Open Tools → Export to EXE — the compiler window opens
- In the compiler:
- Source .arrv: — choose your saved
.arrvfile (Browse...) - Output folder: — choose where to save the
.exe(Browse...) - EXE name: — type a name (latin letters, no
.exesuffix)
- Source .arrv: — choose your saved
- Click Build EXE (green button)
- Done! Your standalone
.exeis ready
💡 First time? Click Rebuild Runtime first — the compiler will prepare the runtime files. After that, builds take seconds.
If you've ever tried to package a Python script into a .exe,
you know the pain:
pip install pyinstaller- Write a
.specfile - Handle missing modules with
--hidden-import - Copy DLLs manually
- Debug mysterious errors like
ModuleNotFoundErrorin frozen builds - Hope it works on the target machine
ArrayVator does all of this for you.
| Traditional Python | ArrayVator |
|---|---|
| Install Python | ❌ Not needed |
| Install PyInstaller | ❌ Not needed |
Write .spec files |
❌ Not needed |
Handle --hidden-import |
❌ Not needed |
| Bundle DLLs | ❌ Not needed |
| Result | Standalone .exe in 2 clicks |
The compiler scans your code and picks the right runtime:
runner_minimal— pure language (fastest, smallest)runner_data— with Excel / CSV / DuckDBrunner— full: charts + HTML reports
- ⚡ Build
.exein 2 clicks — no Python, no PyInstaller - 📊 Matrices and vectors — tables with headers, slicing, ranges
- 🔍 Filtering —
filterif,deleteifvs classic loops - 📈 Aggregates —
sum,avg,min,max,count,median,std - 🎯 Conditional aggregates —
sumif,countif,avgif,minif, ... - 📊 Grouping —
groupby,pivot,groupagg - 🪟 Window functions —
rownumber,rank,lag,lead,winsum,qualify - 📅 Dates and time —
year,adddays,DateDiff,datetrunc - 🧮 Strings —
split,joinvector,replacetext,clean,trim - 🔎 Search —
find,vlookup - 🎨 Conditions —
case,applyif - 🚀 BigData — up to 1 billion rows via DuckDB
- 📉 Charts — Matplotlib / Plotly (bar, line, pie, hist, scatter, box, heatmap, pair)
- 📄 HTML reports — with interactive Plotly charts
- 📁 Files — Excel, CSV, TXT, Parquet, SQLite
- 🧠 Built-in help — click on a function → help appears on the right
Get the latest portable build: Releases
Windows — ArrayVator_Portable.zip:
ArrayVator.exe— editor (double-click to run)runner/— full interpreter (DuckDB, Excel, charts)runner_data/— data mode (DuckDB, Excel, no charts)runner_minimal/— minimal (core only)compiler/— EXE compiler (GUI)help/— help files (Russian + English)
No Python required! Works on Windows 10/11 (x64).
Installation:
- Download
ArrayVator_Portable.zip - Extract anywhere
- Run
ArrayVator.exe
ArrayVator is currently unsigned. Windows SmartScreen may warn:
Windows protected your PC
This is normal. Click More info → Run anyway.
The source is 100% open — verify on GitHub, or build from source.
We're applying for a free open-source code-signing certificate (via SignPath.io). Future releases will be signed.
m = ["Name", "Department", "Salary";
"Anna", "IT", 85000;
"Bob", "HR", 65000;
"Eve", "IT", 95000]
r = filterif(m[:, "Department"] == "IT")
print(r)
Output:
Name Department Salary
Anna IT 85000
Eve IT 95000
The examples/ folder contains 68 self-contained recipes
organized by topic:
| Category | What's inside |
|---|---|
| Basics | Loops, conditions, matrices, strings |
| Filtering | filterif, deleteif vs loops |
| Aggregates | sum, avg, sumif, countif |
| Grouping | groupby, pivot, groupagg — 4 ways to compute the same |
| Window functions | rank, lag, ntile, qualify |
| Analytics | abc, anomaly, percentof |
| Dates | Full reference for dates and time |
| Joins | join, joinarray, unpivot, vlookup |
| BigData | Matrix vs DuckDB comparison |
Each example is a self-contained file with comments, code, and expected output. Run them with F5 in the editor.
Requirements:
- Python 3.10+
- Windows / Linux / macOS
Setup:
git clone https://github.com/Arrayvator/arrayvator.git
cd arrayvator
pip install -r requirements.txt
python main.pyDependencies: duckdb, python-calamine, pyexcelerate, openpyxl,
matplotlib, plotly, playwright, pyinstaller.
Some key rules of ArrayVator:
- All functions return a value — save the result:
m = filterif(m[:, "Department"] == "IT") Noneis the only empty-value literal (null,nanare forbidden).=— assignment.==— comparison.- Logical operators:
and,or,not. - Indexing starts at 1 —
m[1, :]is the header row. - Header rule:
m[:, "Name"]— header does NOT take partm[:, 3]— header DOES take part
- DuckDB (BigData) is read-only — some functions are Matrix-only.
See examples/ for details.
MIT — see LICENSE.
Arrayvator
- Website: arrayvator.ru
- GitHub: @Arrayvator


