இ தமிழ் · version 0.2.0 · AGPL-3.0
Build industrial software in Tamil.
eTamil is a programming language whose vocabulary is Tamil, aimed at Indian accounting, taxation and fintech. Not a teaching language — a backend language built to carry real industrial applications, with an accounting and taxation framework no general-purpose language ships with.
Rust 1.85+ · Linux, macOS and Windows · run a file with etamil --vm hello.etamil
// வருமான வரி — income tax
எண் வருவாய்;
அச்சு "Enter income: ";
உள்ளிடு வருவாய்;
வரி = 20%;
(வருவாய் > 800000) எனில் {
அச்சு "High Tax Bracket";
அச்சு (வருவாய் - 800000) * வரி;
}
இன்றேல் {
அச்சு "Low Tax Bracket (No Tax)";
}- 201keyword tokens
- 3spellings per keyword
- 227tests, Linux + Windows
- 0.1+0.2is exactly 0.3
- Rustwith an optional LLVM backend
The core idea
Three spellings. One language.
Every keyword accepts Tamil script, a romanized spelling you can type on a plain keyboard, and — where one exists — an English alias. All three produce the same token, so a team can write in whichever form suits it.
எண் வருவாய் = 100000;
அச்சு வருவாய் * 18%;eN varuvAy = 100000;
accu varuvAy * 18%;
The romanization is its own scheme, ezuqqu, not ISO 15919 — designed so that
every Tamil letter maps to exactly one ASCII character you can type without a
Tamil keyboard. It keeps the three Tamil nasals apart, which English collapses
into one n: ண is N, ந is n,
and ன is Z.
Why it exists
Money is exact, because tax code is not forgiving.
Every number in eTamil is a fixed-point decimal, from the lexer through to the VM.
There is no f64 anywhere in the value type, so the arithmetic a
GST or income-tax program actually performs comes out right.
அச்சு 0.1 + 0.2; // 0.3 — not 0.30000000000000004
அச்சு 99.99 * 3; // 299.97 — not 299.96999999999997
அச்சு 18%; // 0.18 exactly
Equality is exact too. The earlier f64 value type compared numbers equal
within 1e-10, which made two amounts a fraction of a paisa apart
indistinguishable — a real hazard in reconciliation. Division keeps full precision
rather than rounding at each step, because Indian tax computation rounds once at the
end and rounding intermediates compounds the error.
Not a teaching language
Built for industry, not for the classroom.
Tamil programming languages have existed for years, and nearly all of them were built to teach. eTamil is built to ship. It compiles to bytecode and runs on its own VM, it is written in Rust, and it is designed to hold its own against the backend languages it would otherwise sit beside — Python, Java and Node.js.
What makes it industrial
- A real toolchain. Bytecode VM, an optional LLVM backend, 227 tests running on Linux and Windows in CI.
- A real backend. Concurrent HTTP server, SQL drivers, JSON, bcrypt and JWT — not a REPL with a print statement.
- Exact money. Fixed-point decimals throughout, so reconciliation and tax arithmetic are correct by construction.
- Errors that refuse. Anything unimplemented fails with an explicit message rather than quietly returning something plausible.
What makes it unique
No general-purpose language ships with a chart of accounts. eTamil comes with a ready framework for accounting and taxation — double-entry posting that refuses to go out of balance, GST with CGST/SGST/IGST splitting, the trial balance and the three statements.
That framework is the foundation. Banking, insurance, customs and blockchain modules are planned on top of it, extending the same vocabulary across the rest of the Indian financial stack.
What runs today
Explore the language.
Functions, collections, error handling, modules, SQL databases, a concurrent HTTP server, and an accounting framework written in the language itself.
-
Finance & accounting
Double-entry ledger, GST with CGST/SGST/IGST splitting, trial balance and the three statements — plus Indian digit grouping for rupees.
-
The language
Functions, arrays and records, iteration, results as values, modules, and a type checker that holds you to what you declared.
-
Servers & databases
An HTTP server with routing and path parameters, SQLite and PostgreSQL drivers with parameterised queries only, bcrypt and JWT.
-
Keyword reference
201 tokens across roughly 500 spellings — financial vocabulary, control flow, SQL clauses and the standard library, all three forms listed.
-
Status & roadmap
An honest table of what works, what is partial, and what deliberately fails with an explicit message rather than quietly doing nothing.
-
The research
The peer-reviewed paper behind the language, the literature survey, and the domain notes on GST, Ind AS and IFRS that shaped its vocabulary.
The proof
The standard library is written in eTamil.
Not in Rust. That is the point: if the standard library needed a systems language, the DSL would not be sufficient for the frameworks built on top of it. The host provides only what a language cannot express — decimal arithmetic, text measurement, file and socket access — and everything above that is readable and editable by the people who use it.
Rupees, grouped the Indian way
இறக்கு "nUlakam/paNam.qmz";
அச்சு ரூபாய்(12345678.5);
// ₹1,23,45,678.50 — lakh and crore, not thousandsA ledger that refuses to go out of balance
இறக்கு "nUlakam/kaNakkiyal/pErEtu.qmz";
த = பரிவர்த்தனை_ஆக்கு("JV1", "2026-04-01", "மூலதனம்", [
பற்று_வரிசை("1000", 500000),
வரவு_வரிசை("3000", 500000)
]);
பேரேடு = மதிப்பு(பதிவிடு(பேரேடு, த));Coming next
The rest of the Indian financial stack.
Accounting, taxation and finance are in the language today. The same vocabulary-first approach extends to the domains beside them — each one a framework written in eTamil, on the ledger that already exists.
-
Banking
NEFT, UPI and RBI compliance — payment abstractions, transaction limits and KYC/AML checks as language-level constructs rather than hand-written rules.
-
Insurance
Policy, premium and claim structures, with the same exact-decimal arithmetic the accounting framework already depends on.
-
Customs & trade
E-way bills and Customs Act obligations — code validation, duty calculation and declaration generation.
-
Blockchain
Hyperledger-backed audit trails, so a posting can be made tamper-evident without leaving the language.
These are planned, not built. The status page keeps a feature-by-feature line between the two, and anything unimplemented fails with an explicit message rather than quietly doing nothing.
Research
Backed by published work.
eTamil is the subject of doctoral research at B.S. Abdur Rahman Crescent Institute of Science and Technology, Chennai. The paper — Developing an Indian DSL (Programming Language) for Accounts, Commerce, Finance, and Fintech Professionals, by Mohammed Maruff and Dr. S. P. Valli — reviews 28 academic and industrial sources from 2003–2025 and sets out why India needs a financial DSL of its own.