Frequently Asked Questions
Common questions about Mist, its features, and ecosystem.
What is Mist?
Mist is a modern programming language designed for systems programming with a focus on simplicity, performance, and developer experience. It uses C/C++ style syntax while compiling to efficient Rust code with zero-cost abstractions and no runtime overhead. Mist offers a rich type system with features like generics, traits, algebraic data types, classes, and more.
How does Mist compare to Rust?
Mist is not a replacement for Rust — it's an ergonomic interface for it. Mist aims to be more familiar and approachable by offering design concepts like C-style syntax, classes, and inheritance while being Rust under the hood. All of your favorite Rust libraries work with Mist, and the borrow checker and type system are present in every expression.
How do I install Mist?
Mist is distributed as a Cargo crate. Install it by running 'cargo install mist-lang@0.4.0'. You'll need the Rust toolchain installed. Once installed, create a new project with 'mist new my-project' and run it with 'mist run'. Check the Get Started guide for full details.
Can I use Rust libraries with Mist?
Yes! All of your favorite Rust libraries work with Mist. Mist compiles to idiomatic Rust code, making it a first-class citizen of the Rust ecosystem. You can use any Rust crate as a library while writing code that feels distinctly Mist.
Does Mist have a garbage collector or runtime?
No. Mist has no garbage collector, no hidden allocator, and no VM. It provides zero-cost abstractions where classes, traits, and generics all resolve at compile time. Mist is designed for low-level and embedded programming where resources are constrained and control is required.
What IDE support is available?
Mist offers two VSCode extensions: a syntax highlighting extension and the Mist Analyzer LSP extension. The language server bridges editor requests through rust-analyzer, providing features like go-to-definition, completions, hover information, real-time diagnostics, and auto-import.
Does Mist support object-oriented programming with classes?
Yes! Mist introduces 'class' as syntactic sugar for a Rust struct with a virtual method table. Classes support constructors, inheritance with method overriding, virtual dispatch, and default field initializers. The compiler statically verifies that every field is initialized before the constructor returns.
Is Mist production-ready?
Mist is currently in a Beta stage (latest: v0.4.0) and is not yet production-ready. The language is evolving rapidly — the current priority is exploring syntax and features before locking in deep architectural logic. You may encounter breaking changes between releases.
How does the Mist compiler work?
Mist is a transpiler. Source code is parsed via a PEG grammar into an AST, which undergoes semantic analysis (e.g., class field initialization checking). The code generator then produces Rust source code directly, which is compiled with cargo. The compiler is partially bootstrapped — the CLI and transpiler modules are written in Mist itself.
What platforms does Mist support?
Mist is cross-platform. Since it compiles to Rust and uses cargo under the hood, it can run on anything that Rust supports — including Windows, macOS, Linux, and embedded targets.
Do I need to know Rust to use Mist?
No, but it's recommended. Mist's syntax is familiar to C/C++ developers, so you can be productive immediately. However, Rust's ownership model and semantics still apply under the surface — concepts like borrowing, lifetimes, and the borrow checker are fundamental to writing correct Mist programs.
How can I contribute to Mist?
Mist is open source and contributions are welcome! You can contribute by submitting pull requests on GitHub, reporting bugs and weird syntax errors, improving documentation, or participating in discussions. The compiler, transpiler, and CLI are partially bootstrapped in Mist itself, giving contributors first-hand experience with the language.