Skip to content

Introduction

Jiang is a systems programming language in active development. It aims to bring systems-level control, engineering abstractions, and domain-specific syntax extension into one language, so projects do not have to bounce between several languages and code generators to express their problem domain.

Jiang’s All-in-one direction is not about putting every feature into the core syntax. The core language should stay clear, checkable, and compilable, while custom syntax carries domain-specific surface forms.

Custom syntax is the foundation of that direction. Users can extend Jiang with their ideal syntax for queries, user interfaces, shaders, vector computation, binary protocols, state machines, or script blocks. The resulting code follows the same language rules for names, types, generics, and visibility.

Jiang is designed around ownership and lifetimes by default. Resource cleanup, borrowing, pointers, and memory layout should stay explicit in the language instead of depending on hidden runtime behavior.

Jiang has a builtin #asm syntax block for runtime code, system calls, and platform boundaries. It is not meant as the normal way to write application logic. Linux hosted builds use the host libc; Linux no-libc remains a later, separate runtime path.

That does not rule out optional runtime capabilities. If Jiang later adds garbage collection, it should be chosen by users and packages for the cases that need it, such as embedded scripting, plugin systems, or user automation. Performance-critical paths can still remain in Jiang’s ownership and lifetime model.

Jiang is currently best suited for exploring:

  • Systems code that needs direct control over memory, layout, object files, and foreign interfaces.
  • Tools, frameworks, and platforms that combine domain-specific syntax with systems-level runtime efficiency.
  • Projects that want queries, user interfaces, protocols, shaders, data pipelines, or similar domain descriptions to participate in type checking.
  • Language work where the compiler and language mechanisms evolve together through self-hosting.

Jiang is still early. The language, standard library, and compiler internals will continue to change. Release packages are available for macOS arm64 and Linux x86_64. Linux hosted programs use the native system libc and toolchain. The compiler is self-hosting and verified by the language test suite.

Start with Getting Started if you want to try the language, or read Custom Syntax to understand Jiang’s central extension mechanism.