The embeddable scripting language that doesn't fear real threads

Sync works with C C++ Rust Zig

Safety

  • Thread safety is memory safety
  • Compile and run any code on demand
  • Compiler will ensure safe code execution through the borrow checker

Embeddable

  • Embed Sync into your project with APIs for many languages
  • Usable on any platform
  • Full control over memory usage

Multithreading

  • Uses real OS threads for true parallelism
  • Share memory across threads for complex interconnected applications
  • Detect and prevent deadlocks

Simple

  • 100% deterministic, with no garbage collector
  • Perfect for real time applications
  • Zero translation layers required through using the C struct memory layout
Sync icon shared_thread_counter.sync
mut counter: Owned i32 = 0; fn addOne() { for i in 0..10000 { sync mut counter { counter += 1; } } } fn addTwo(n: usize) { for i in 0..n { sync mut counter { counter += 2; } } } fn main() { const t2 = parallel addOne(); const t2 = parallel addTwo(20000); addOne(); await t1; await t2; sync counter { print(counter); // 60000 } }

Why Sync?

Games & Game Engines

Enable modders and designers to write gameplay scripts that leverage all CPU cores. Complex AI, physics callbacks, and game logic can run in parallel without sacrificing safety or determinism.

Extend Real-time Applications

Add scriptable extensibility to audio workstations, video editors, and other latency-sensitive software. No garbage collector pauses, predictable performance, and true parallel execution.

Simulation Software

Build simulations where thousands of interconnected entities share state across worker threads. Sync's ownership model ensures data consistency while maximizing throughput.

Roadmap

Version 0.1.0

COMING SOON! Necessary primitives, robust error handling, powerful synchronization system (including deadlock detection), compiler, and interpreter.

Package Manager

Build a native package manager for Sync for easy sharing and integration. Minimizing supply chain attacks is a top priority.

LSP

Both the language server, and clients for popular code editors.

Video Game Console Support

As an embeddable language, supporting all possible targets is a priority. In theory, it should work, but testing must be done.

JIT Compiler

For platforms that support it, a JIT compiler will push Sync to be the language of choice for extending applications.