DuduDudu logo

Write like Python. Compile to readable C++.

A statically typed systems language with direct C and C++ interop. Brown on purpose.

Experimental. Native. Weirdly sincere.

No fire required

Built different

01 / PYTHON-SHAPED

Readable at a glance

Indentation, familiar expressions, inference, classes, enums, match, and generics without pretending runtime dynamism is free.

02 / NATIVE

The ecosystem already exists

Import C and C++ headers, call native libraries, use CMake projects, and emit C++20 that humans can inspect.

03 / SYSTEMS

Control stays visible

Fixed-width types, arrays, pointers, references, deterministic native code, and explicit ownership where it matters.

Actual Dudu

Python on top. C++ underneath.

Dudu keeps the source compact while preserving native types and ordinary control flow. The compiler emits readable C++20 and hands serious project builds to CMake.

  • Multi-file modules
  • Native generics and fixed arrays
  • Payload enums and exhaustive match
  • LSP, formatting, tests, and project driver
src/main.dd
from c import raylib.h as rl

class Player:
    hp: i32
    pos: Vec2

def main() -> i32:
    player = Player(hp=100, pos=Vec2(400.0, 300.0))
    rl.InitWindow(800, 600, "dudu")

    while not rl.WindowShouldClose():
        rl.BeginDrawing()
        rl.DrawCircle(player.pos.x, player.pos.y, 40.0, rl.BROWN)
        rl.EndDrawing()

    rl.CloseWindow()
    return 0
A pixel-sharp raymarched sphere rendered by a Dudu SDL3 dogfood project

Dogfooded

Not a syntax mockup.

The compiler is exercised through real projects using SDL3, raylib, ImGui, glm, SQLite, the C and C++ standard libraries, and generated multi-module CMake builds.

Browse the dogfood projects

Pre-alpha means pre-alpha. Dudu is usable for experiments and dogfooding, but language and generated ABI compatibility can change. Read the known limitations before adopting it.