What is Zynx?

An overview of Zynx's goals, current status, and development philosophy.

Zynx is a statically typed systems programming language that lowers through an LLVM-based backend. It aims to pair small native binaries and direct control with modern compile-time checks.

Design Direction

Zynx borrows ideas from C, Rust, Zig, Swift, TypeScript, and Go, but keeps a file-first workflow centered around one compiler driver.

The current priorities are:

  • deterministic memory management
  • compile-time safety checks
  • practical C interoperability
  • source files, modules, tests, formatting, and editor support in one toolchain

Why Zynx?

Zynx is not trying to be a general replacement for C, Rust, Zig, or Go today. It is an unreleased language for exploring a specific systems-programming tradeoff:

  • compared with C, make ownership, cleanup, error unions, and checked arithmetic explicit in the language instead of relying on conventions
  • compared with Rust, keep the surface smaller and more direct for experiments in compiler/runtime design
  • compared with Zig, emphasize source-level ownership checks and a standard Future-based async model
  • compared with Go, keep native layout, unsafe interop, and manual low-level control close to the source

That makes Zynx most useful right now for contributors, compiler/runtime experiments, and low-level tooling where breaking changes are acceptable.

Current Audience

The first target users are:

  • compiler/runtime contributors
  • systems programmers evaluating language-design tradeoffs
  • people building low-level tooling prototypes
  • language-design learners who are comfortable with breaking changes

Zynx is not production-ready. Embedded, security-critical, and long-lived application use should wait for a clearer release line, stability policy, and API audit story.

Design Answers

Implicit call-site borrowing is part of the current design: a value can be borrowed for one call when the parameter expects &T or const &T. Long-lived references still require explicit &.

Assignment through a checked reference writes to the referenced value. Zynx does not use C-style *ref = value for checked references.

return inside an expression catch arm currently yields the arm value, like a match arm block. It does not return from the enclosing function. Because Zynx is unreleased, this is documented current behavior, not a final compatibility promise.

Crypto APIs are current wrappers over pinned runtime dependencies. They are not a production security endorsement or audit claim.

Current Status

Warning

Zynx is unstable. Treat language syntax, module bundles, ABI details, and standard library APIs as development surfaces.

The compiler already exercises a broad set of features in its test suite, including generics, enums and match, async lowering, optional chaining, ownership moves, string interpolation, formatting, package tooling, JSON-based example tools such as manifest-inspect, jsoncheck, and jsonset, and LSP behavior.

Release Status

Zynx is currently 0.0.0-dev and unreleased. There is no frozen public API, no compatibility promise, and no published release line yet. The public docs track current documented behavior and should be updated when implementation or tests change.

See Project Status for the current development boundary.

Where to Go Next

For a hands-on path, continue with Quickstart and Learn Zynx. For feature details, use the Language Reference.