⚡ Now with GPU compute via VecTec

A language built for speed and simplicity

Techlang is a compiled, statically typed language targeting LLVM. Pair it with VecTec for seamless GPU compute — zero boilerplate.

main.tec
// CPU code
!import(std.tec) as std;
!import(arrays.vtec) as gpu;

function main() returns none {
    ArrayOf(float) a = {1.0, 2.0, 3.0, 4.0};
    ArrayOf(float) b = {5.0, 6.0, 7.0, 8.0};

    // runs on your GPU automatically!
    ArrayOf(float) result = gpu.addArrays(a, b);
    std.print(result[0]); // 6.0
}
arrays.vtec
// GPU kernel
kernel addArrays(
    ArrayOf(float) a,
    ArrayOf(float) b
) returns ArrayOf(float) {
    int id = threadId();
    return a[id] + b[id];
}

Why Techlang?

Everything you need, nothing you don't

Native Performance

Compiles directly to native binaries via LLVM. No interpreter, no VM — just fast machine code.

🎮

GPU Compute via VecTec

Write GPU kernels in VecTec and call them from Techlang. Zero CUDA boilerplate — the compiler handles everything.

🔒

Statically Typed

Catch errors at compile time, not runtime. Strong type system with inference for clean, safe code.

📦

Module System

Split code across files with a clean import system. Functions are automatically namespaced by alias.

🔧

C Interop

Call C functions directly with the extern keyword. Full access to the C standard library and beyond.

Clean Syntax

Familiar C-like syntax with modern features — structs, enums, any type, as casting, and more.

Get Started

Up and running in minutes

1

Install dependencies

# Arch Linux
sudo pacman -S llvm gcc cmake git

# Ubuntu/Debian
sudo apt install llvm-dev gcc cmake git

# macOS
brew install llvm gcc cmake
2

Download Techlang

# Download the pre-built binary (Linux x64)
wget https://github.com/gummyniki/techlang/releases/download/v0.2.0-alpha/techlang-linux-x64.tar.gz
tar -xzf techlang-linux-x64.tar.gz
cd techlang-linux-x64 && ./install.sh

or build from source:

git clone https://github.com/gummyniki/techlang
cd techlang
mkdir build && cd build
cmake .. && make
3

Write your first program

!import(std.tec) as std;

function main() returns none {
    std.print("Hello from Techlang!");
}
4

Compile and run

techlang hello.tec
./hello
# Hello from Techlang!