embedded-scripting-languages
webcontainer-core
embedded-scripting-languages | webcontainer-core | |
---|---|---|
11 | 20 | |
1,218 | 3,622 | |
- | 0.8% | |
8.1 | 2.0 | |
about 2 months ago | about 1 year ago | |
- | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
embedded-scripting-languages
-
Steel – An embedded scheme interpreter in Rust
Hopefully the linked README provides a general overview (I know I need to write some more documentation!), but Steel is an implementation of the scheme programming language (not entirely compliant yet, but aiming for R5RS and R7RS compliance). It can be used as a standalone language via the interpreter/repl (like Python or Racket), or it can be embedded inside applications, like Lua. There are hundreds (thousands, probably) of embeddable languages, each with their own flavor - see a list compiled here for example https://github.com/dbohdan/embedded-scripting-languages
Use cases are generally for either configuration, scripting, or plugins - so scripting in games, or adding extensions to your text editor without having to use FFI or RPC + serializing a bunch of data. The advantage it has over using dynamic libraries (in general) is it runs in the same process, and can access the internal data structures directly without a lot of ceremony involved. The downside is typically is not as fast as native code unless a JIT is involved.
Javascript is an example of an embedded scripting, where the browser is the host application.
-
Lua: The Little Language That Could
> There is a huge opportunity, IMO, for more players here.
There are quite a few embeddable scripting languages [1]. I think these days it's less common to embed a language mostly because there are good high-level languages that applications can be predominantly written in.
[1] https://github.com/dbohdan/embedded-scripting-languages
- Ask HN: Embeddable Value-Oriented Languages?
- Embedded Scripting Languages
-
Simple statically typed language with value semantics?
I'm not a huge fan of Lua but I think it is at least way more popular and better on every measure than TCL. There are plenty of other better less well-known options too: Rhai, Wren, AngelScript, Starlark (for some use cases), etc. There's a good list here.
- Language Interpreter for Coding Game
-
Choosing scripting extension - need advice
or perhaps use one of this list (depending on who's writing the configuration): https://github.com/dbohdan/embedded-scripting-languages
- Ana is a Python, PHP, and C inspired dynamically typed scripting language
-
How to implement an in-game programming language?
https://github.com/dbohdan/embedded-scripting-languages (coincidentally, from a user whose name I recognize from the Tcl wiki)
- Do you have problem to visit LambdaChip website?
webcontainer-core
-
API Security Academy dedicated to GraphQL security
How does it work? There is no backend whatsoever. The API Security Academy leverages WebContainers, a new technology that allows running full-blown node instances directly in the browser. Each WebContainer contains a live GraphQL application, so you'll not only understand why a vulnerability is risky, but also how to exploit it and, most importantly, how to fix it.
-
Node on Web. Use Nodejs freely in your browser with Linux infrastructure.
StackBlitz made the claim "... run Node.js, entirely inside your browser" #658, then had to revise it's claim to "We currently do not expose a way to use WebContainer outside of StackBlitz.com,".
-
Lua: The Little Language That Could
> Wasm though seems like the likely general heir, and will have many different offerings for how to do that (Deno being one!).
I was recently blown away by some ideas that StackBlitz [0] apply based on WebContainers. The idea of a "server in the browser", they allow you to run Node-based environment like that via Wasm.
[0] https://stackblitz.com/
[1] https://webcontainers.io/
-
How repl.it and online code editors are built?
See https://webcontainers.io.
-
Blog Post: Reasonable Bootstrap
This very simple fact is well known flaw, which was already often criticized and asked for solutions by users. It doesn't only affect this kind of very exotic bootstrap applications but also significantly limits rusts usefulness in many other areas. Pure browser based scientific code documentation and example notebooks (e.g. jupyterLite) and sandboxed CI and IDE solutions (e.g. web containers) as available for many other languages are simply not available for rust because of this very fundamental issue.
-
WebContainer API
Looks like they plan to open it. From the FAQ section of README (https://github.com/stackblitz/webcontainer-core#faqs):
> Is there a developer API?
-
[AskJS] Is there an JavaScript engine agnostic server module that can be imported into Bun, QuickJS, Deno, and Node.js?
I'm skeptical about stackblitz claims. The last time I checked that is closed source code https://github.com/stackblitz/webcontainer-core/issues/658.
-
Use SSH in browser
StackBlitz claimed https://blog.stackblitz.com/posts/introducing-webcontainers/ to have implemented Node.js in the browser, though I have not observed any evidence of that being true and correct https://github.com/stackblitz/webcontainer-core/issues/658.
- Node.js in Chrome extension
-
Docker Desktop Requires A Paid Subscription, Now What?
The other honorable mention is StackBlitz, a web-based web editor for making containers that run Javascript applications. Interestingly, StackBlitz is championing WebContainers, a technology that allows developers to start NodeJS servers within the browser. The downside is, this technology only works with Javascript-based projects (NodeJS, NextJS, etc). I include it here because WebContainers could easily be extended to support other languages via WASM, like Ruby. I’ll also add in Buildah, a tool for building OCI images. I won’t say much about this tool because it’s designed for building images; you still need another service, like Podman, to actually create the containers.
What are some alternatives?
Ark - ArkScript is a small, fast, functional and scripting language for C++ projects
wasmer - 🚀 The leading Wasm Runtime supporting WASIX, WASI and Emscripten
grule-rule-engine - Rule engine implementation in Golang
standards-positions
wasmer-go - 🐹🕸️ WebAssembly runtime for Go
wasm-clang - Running Clang/LLD in WebAssembly Demo
starlight - a go wrapper for google's starlark embedded python language
threads - Threads and Atomics in WebAssembly
Rhai - Rhai - An embedded scripting language for Rust.
joystick - A full-stack JavaScript framework for building stable, easy-to-maintain apps and websites.
wazero - wazero: the zero dependency WebAssembly runtime for Go developers
openvscode-server - Run upstream VS Code on a remote machine with access through a modern web browser from any device, anywhere.