A small, statically-typed, functional programming language designed for embedding in Rust applications.
Gluon is a small, statically-typed, functional programming language designed for embedding into host applications, especially those written in Rust. It provides a type-safe scripting layer that allows developers to extend their applications with custom logic while ensuring safety and efficiency through static typing and type inference.
Rust developers who need a safe, embeddable scripting language to extend their applications, and functional programming enthusiasts looking for a tiny, statically-typed language.
Developers choose Gluon for its seamless Rust integration, minimal embedding boilerplate, and strong static typing with full type inference, offering a safe and efficient alternative to dynamically-typed embedded languages.
A static, type inferred and embeddable language written in Rust.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Marshalling values between Rust and Gluon requires minimal boilerplate, allowing functions defined in Rust to be directly passed to Gluon, as demonstrated in the embedding examples.
Static typing with Hindley-Milner type inference reduces explicit annotations while ensuring safe interfaces, making it easy to write correct and efficient code.
Built on Rust's guarantees, Gluon allows multiple programs to run in parallel, though it's a recent feature and may have issues like deadlocks as noted in the README.
With a small footprint and separate components, Gluon is designed to be easy to embed and learn, prioritizing minimalism as stated in its goals.
Parallel execution is a recent addition with acknowledged issues such as deadlocks, making it less reliable for production use in highly concurrent scenarios.
The language is optimized for Rust embedding, and the C API is rudimentary, limiting its effectiveness in non-Rust host applications.
As a tiny language, Gluon's stdlib is minimal, which can increase development effort for tasks that typically rely on extensive library ecosystems.