LichenScript is designed to write untrustworthy plugins for an exist system. For example, LichenScript can be used to write third-party plugins for your website/mobile app, which is isolated. It has modern syntaxes such as pattern matching/discriminated union. It's designed to be lightweight, easy to compile to target platform with very small overhead.
- Static typing
- Pattern matching
- AOT compilation
- Fast cold start
- Lightweight runtime
- Reference counting
- Use the library of C/C++/Rust through C-ABI
- Small overhead
- Isolate environment
- Plugin system for a Website
- Game development
- Mini-program environment
✅ Done 🔨 Work in progress 📖 Planning
|Compiled to C (macOS/Linux)||✅|
|Compiled to C (Emscripten/WASM)||✅|
What's different with Rust? Why not Rust?
LichenScript does NOT use lifetime.
LichenScript is a high level language. I don't want the programmers to care about the detail of the memory, such as lifetime/smart pointer.
LichenScript is designed to use the ecosystem of C++ in Computer Graphic. So compiling to C is reasonable.
It can be easily integrated with Rust with C-ABI.
LichenScript supports inheritance.
- More lightweight to run, doesn't depend on a heavy runtime.
- The C runtime is very small, LichenScript's object uses reference counting to free memory.
- More static features.
No exceptions and try/catch
The exception mechanism depends on a heavy runtime. So it's excluded from the language.