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


