Under heavy development. This site describes the intended 1.0 language. Current features and performance vary. Development status
Sn50SnThe SnAPI programming language
Snapshot · Oct 24, 2026 · Frozen documentation

C interoperability

Work with the native ecosystem.

Sn is under heavy development. This reference includes the intended 1.0 design; features may be incomplete in the current compiler. Read the status →

C first

Sn's native interoperability work includes authored C ABI declarations and automatically generated C-header bindings. The first implementation target is Linux x86-64.

Inspectable bindings

The design uses an isolated Clang binding host for first-use or invalidated header contexts, with generated Sn packages and cached binding data. Ordinary valid-cache compilation should not need to reparse foreign headers.

ABI is a separate contract

Calling convention, symbol binding, storage, nullability, and call safety are distinct. Exact-width source types still require ABI validation for the target platform.

C++ is future work

Direct C++ ABI-profile implementation is deferred. C interoperability does not establish support for C++ class layout, member pointers, or arbitrary C++ headers.

Current readiness

Native library loading, callbacks, aggregates, and generated bindings have focused implementation evidence. That does not establish a stable general release, every target ABI, or completed whole-project validation.

Documentation snapshot: October 24, 2026 About versions ↗
Searching Development · language & standard library