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.
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
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.
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.
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.
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.
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.
For a hands-on path, continue with Quickstart and Learn Zynx. For feature details, use the Language Reference.