Show HN: Ion, a Rust/Tokio powered JavaScript runtime for embedders
3 days ago
- #JavaScript
- #Rust
- #Embedding
- Ion is a JavaScript runtime for embedding within Rust programs, useful for plugin systems and standalone executables.
- Goals include an easy-to-use API, Tokio-based event loop, standard library support, multi-threading, and C FFI for embedders.
- Includes a reference executable and examples for usage.
- Supports executing JavaScript in isolated contexts, spawning async tasks, and calling JavaScript functions from Rust.
- Targets use cases like plugin systems, SSR services, and FaaS servers.
- Compares with Node.js, Deno, and Bun, highlighting limitations in embeddability and distribution.
- Layered approach with core runtime features and user-land API for extensions.
- Supports resolvers, extensions, and preprocessors for flexible runtime customization.
- Built with Rust, v8, and Tokio, featuring multi-threaded execution and isolated event loops.