lang-team
runwasi
lang-team | runwasi | |
---|---|---|
25 | 8 | |
190 | 977 | |
0.5% | 1.8% | |
7.8 | 9.6 | |
about 1 month ago | 1 day ago | |
JavaScript | Rust | |
Apache License 2.0 | Apache License 2.0 |
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.
lang-team
-
Totally_safe_transmute, Line-by-Line
The Rust team did a deep dive on the bug in 2020, which has some more details that might be helpful to understanding what's going on: https://github.com/rust-lang/lang-team/blob/master/design-me....
-
Using enums to represent state in Rust
I haven't been following this closely, so I looked it up and it looks like that's not going to happen for the foreseeable future unfortunately:
https://github.com/rust-lang/lang-team/issues/122
Kind of a shame, but wrapper types work well enough that I understand. It does look like if there was someone with enough resources to make it happen that they'd be receptive to it.
- Should Error enums be `non_exhaustive`?
-
What features would you like to see in rust?
Did you read the link the original comment posted? I think that explains the idea rather well https://github.com/rust-lang/lang-team/issues/122
-
Pattern matching tuple variant of enum without deconstructing tuple
A quick search pulled up this as a likely candidate for most recent discussion of it but it goes back at least to 2016 with this RFC.
-
State Machines III: Type States
There have been at least one proposal and RFC in the past that seem to be deferred or closed due to bandwidth issues.
-
The type system is a programmer's best friend
That's what Rust does, and it's considered a problem (that the devs are regrettably unable to reasonably solve) rather than a good thing.
-
In-line crates
Lang had some conversations about this: https://github.com/rust-lang/lang-team/issues/139
-
LKML: Linus Torvalds: Re: [PATCH v9 12/27] rust: add `kernel` crate
The design of Rust panics unconditionally aborts the program if you panic while unwinding, and some people even want to abort if you panic in Drop.
-
Isolates, MicroVMs, and WebAssembly (In 2022)
> Better interoperability
AFAIK, the examples you give all target a basic C ABI [0] or can be made to target the same ABI. In Rust, it means targeting wasm32-unknown-emscripten
The Rust team is also working on a "WASM ABI"[1] which would be useful in taking advantage of stuff like multi-value returns, and other compilers could just choose to target that. More likely, the C ABI on WASM will be updated to account for missing features, and that'll be the standard for interoperability in the WASM ecosystem.
[0]: https://github.com/WebAssembly/tool-conventions/blob/main/Ba...
[1]: https://github.com/rust-lang/lang-team/blob/master/design-me...
runwasi
-
Howto: WASM runtimes in Docker / Colima
cpu: 4 disk: 60 memory: 12 arch: host hostname: colima autoActivate: true forwardAgent: false # I only tested this with 'docker', not 'containerd': runtime: docker kubernetes: enabled: false version: v1.24.3+k3s1 k3sArgs: [] network: address: true dns: [] dnsHosts: host.docker.internal: host.lima.internal # Added: # - containerd-snapshotter: true (meaning containerd will be used for pulling images) docker: features: buildkit: true containerd-snapshotter: true vmType: vz rosetta: true mountType: virtiofs mountInotify: false cpuType: host # This provisioning script installs build dependencies, WasmEdge and builds the WASM runtime shims for containerd. # NOTE: this takes a LOOONG time! provision: - mode: system script: | [ -f /etc/docker/daemon.json ] && echo "Already provisioned!" && exit 0 echo "Installing system updates:" apt-get update -y apt-get upgrade -y echo "Installing WasmEdge and runwasi build dependencies:" # NOTE: packages curl, git and python3 already installed: apt-get install -y make gcc build-essential pkgconf libtool libsystemd-dev libprotobuf-c-dev libcap-dev libseccomp-dev libyajl-dev libgcrypt20-dev go-md2man autoconf automake criu pkg-config libdbus-glib-1-dev libelf-dev libclang-dev libzstd-dev protobuf-compiler apt-get clean -y - mode: user script: | [ -f /etc/docker/daemon.json ] && echo "Already provisioned!" && exit 0 # # Setting vars for this script: # # Which WASM runtimes to install (wasmedge, wasmtime and wasmer are supported): WASM_RUNTIMES="wasmedge wasmtime wasmer" # # Location of the containerd config file: CONTAINERD_CONFIG="/etc/containerd/config.toml" # # Target location for the WASM runtimes and containerd shims ($TARGET/bin and $TARGET/lib): TARGET="/usr/local" # # Install rustup: # echo "Installing rustup for building runwasi:" curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain none -y source "$HOME/.cargo/env" # # Install selected WASM runtimes and containerd shims: # [[ -z "${WASM_RUNTIMES// /}" ]] && echo "No WASM runtimes selected - exiting!" && exit 0 git clone https://github.com/containerd/runwasi echo "Installing WASM runtimes and building containerd shims: ${WASM_RUNTIMES}:" sudo mkdir -p /etc/containerd/ containerd config default | sudo tee $CONTAINERD_CONFIG >/dev/null for runtimeName in $WASM_RUNTIMES; do case $runtimeName in wasmedge) echo "Installing WasmEdge:" curl -sSfL https://raw.githubusercontent.com/WasmEdge/WasmEdge/master/utils/install.sh | sudo bash -s -- -p $TARGET echo echo "`wasmedge -v` installed!" ;; wasmtime) echo "Installing wasmtime:" curl -sSfL https://wasmtime.dev/install.sh | bash sudo cp .wasmtime/bin/* ${TARGET}/bin/ rm -rf .wasmtime echo "`wasmtime -V` installed!" ;; wasmer) echo "Installing wasmer:" curl -sSfL https://get.wasmer.io | sh sudo cp .wasmer/bin/* ${TARGET}/bin/ sudo cp .wasmer/lib/* ${TARGET}/lib/ rm -rf .wasmer echo "`wasmer -V` installed!" ;; *) echo "ERROR: WASM runtime $runtimeName is not supported!" exit 1 ;; esac cd runwasi echo "Building containerd-shim-${runtimeName}:" cargo build -p containerd-shim-${runtimeName} --release echo "Installing containerd-shim-${runtimeName}-v1:" sudo install ./target/release/containerd-shim-${runtimeName}-v1 ${TARGET}/bin sudo ln -sf ${TARGET}/bin/containerd-shim-${runtimeName}-v1 ${TARGET}/bin/containerd-shim-${runtimeName}d-v1 sudo ln -sf ${TARGET}/bin/containerd-shim-${runtimeName}-v1 ${TARGET}/bin/containerd-${runtimeName}d echo "containerd-shim-${runtimeName} installed." cd .. echo "[plugins.\"io.containerd.grpc.v1.cri\".containerd.runtimes.${runtimeName}]" | sudo tee -a $CONTAINERD_CONFIG >/dev/null echo " runtime_type = \"io.containerd.${runtimeName}.v1\"" | sudo tee -a $CONTAINERD_CONFIG >/dev/null done echo "containerd WASM runtimes and shims installed." # # Restart the systemctl services to pick up the installed shims. # NOTE: We need to 'stop' docker because at this point the actual daemon.json config is not yet provisioned: # echo "Restarting/reloading docker/containerd services:" sudo systemctl daemon-reload sudo systemctl restart containerd sudo systemctl stop docker sshConfig: true mounts: [] env: {}
-
Using enums to represent state in Rust
I wish Go had (real) enums.
https://github.com/containerd/runwasi/blob/ba5ab5ada5a401762...
- Containerd now supports WasmEdge as a container runtime, via the runwasi project
- WasmEdge supported as a container runtime in containerd via the runwasi project
-
WebAssembly: Docker Without Containers
On Windows the shim is called runhcs (io.containerd.runhcs.v1).
The docker solution mentioned in the article modifies the "wasmtime" shim from https://github.com/containerd/runwasi so that it uses "wasmedge" instead.
-
Is it possible to run a containerized SvelteKit/Node-based website as WASM module?
Instead of serving it inside a container, I would like to run it as WASM module (if that makes sense, I'm very new to WASM. Maybe this a silly idea). The reason for this is to check out reduced instantiation time and effortless multi-arch support (no need to build container image for every arch), for example using the wasmedge runtime: https://docs.docker.com/desktop/wasm/. I currently manage the container through Kubernetes (among other things), and I'm considering runwasi as containerd shim: https://github.com/containerd/runwasi.
- Isolates, MicroVMs, and WebAssembly (In 2022)
- Show HN: Run WASM in Containerd
What are some alternatives?
Idris2 - A purely functional programming language with first class types
runwasi - Facilitates running Wasm / WASI workloads managed by containerd
rfcs - RFCs for changes to Rust
runwasi - [Moved to: https://github.com/deislabs/runwasi]
diamond-types - The world's fastest CRDT. WIP.
krustlet - Kubernetes Rust Kubelet [Moved to: https://github.com/krustlet/krustlet]
isahc - The practical HTTP client that is fun to use.
wasmtime - A fast and secure runtime for WebAssembly
semver-trick - How to avoid complicated coordinated upgrades
cheats.rs - Rust Language Cheat Sheet - https://cheats.rs
rustc-dev-guide - A guide to how rustc works and how to contribute to it.
k8s-WASM-demo - PoC created to measure the performance provided by WASM