Tlang
A compiled language for Telugu, inspired by Go. Simple, explicit, and fast. Compiles to C.
Why Tlang
Go-like simplicity. Rust-like control. C output. Script-native keywords.
Tlang vs Go
| Aspect | Go | Tlang |
|---|---|---|
| Memory | Garbage collected | No GC — borrow checker, explicit ownership |
| Compilation | Go toolchain → native binary | Compiles to C → any C compiler (gcc, clang, MSVC) |
| Binary size | Runtime included (~2–10 MB) | Small binaries — no runtime, static linking |
| Concurrency | Goroutines, channels, select | 1:1 threads, channels, spawn |
| Error handling | (T, error), ? |
(T, error), ? — same pattern |
| Immutability | Mutable by default | Immutable by default — @x vs @!x |
| Syntax | English keywords | Telugu keywords — okavela, malli, mallinchu |
When to use Tlang
- Small binaries — CLI, IoT, embedded
- No GC pauses — predictable latency
- C interop — any C library, any toolchain
- Script-native — Telugu keywords, education
- Go-like ergonomics — without GC
When to use Go
- Larger ecosystem (Kubernetes, Docker)
- Goroutines for massive concurrency
- Team already on Go
TL;DR — Tlang = Go-like simplicity + Rust-like memory control + C output + Telugu keywords.
Install
One command per platform. Requires Rust, a C compiler (or bundled GCC on Windows), and OpenSSL. Full guide
curl -fsSL https://raw.githubusercontent.com/vasuvanka/tlang/main/install.sh | bash
iwr -useb https://raw.githubusercontent.com/vasuvanka/tlang/main/install.ps1 | iex
curl -fsSL https://raw.githubusercontent.com/vasuvanka/tlang/main/install.cmd -o install.cmd && install.cmd && del install.cmd
Quick Start
@fmt = #dhimpu("std/fmt");
#prarambham() {
fmt.Printf("Hello, Tlang!\n");
}
Save as hello.tl, then: tlang run hello.tl or tlang compile hello.tl hello && ./hello
CLI
All commands go through tlang. Run tlang help for full usage.
Build & Run
tlang run [file.tl] [args]— Compile and run (auto-detects entry file)tlang compile <file.tl> [output]— Compile to executabletlang build [dir]— Build projecttlang test <file.tl>— Run tests
Porting & Deps
tlang port <url/file> [dest]— Convert Go/Rust to Tlangtlang get <url> [dir]— Fetch package from Git/URLtlang add <pkg>@<ver> [dir]— Add dependencytlang remove <pkg>·tlang upgrade .
Project
tlang init [app_name] [dir]— New projecttlang clean [dir]— Build artifactstlang version·tlang help