wapm-cli
wordpress-playground
wapm-cli | wordpress-playground | |
---|---|---|
11 | 22 | |
361 | 1,527 | |
- | 1.2% | |
4.9 | 9.7 | |
about 1 year ago | 1 day ago | |
Rust | JavaScript | |
MIT License | GNU General Public License v3.0 only |
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.
wapm-cli
-
Fast Matrix Math in JS 2: WASM
To actually compile this we can use a tool called WABT (WebAssembly Binary Toolkit). It's basically a mess that requires CMake and I couldn't get it to run on WSL and I wasn't going to install MinGW. Instead there's a nice tool called WAPM from Wasmer which works like npm for webassembly packages and since it's been compiled down to webassembly we can run it in any environment. In fact we don't even need to add configuration so long as wapm is installed. We can run wax wat2wasm -- wat/mat.wat -o wasm/mat.wasm. wax is like npx for npm. If you're wondering the command we give wax is defined by the wasmer/wabt package: https://wapm.io/wasmer/wabt. Also for some reason you can't prefix local paths with ./ so wax wat2wasm -- ./wat/mat.wat doesn't work which tool me a while to figure out. Anyway this provides a nice simple compile environment if you want to work on raw WAT files.
- WAPM - WebAssembly Package Manager
-
Dozens of malicious PyPI packages discovered targeting developers
That's the main reason we should start using WebAssembly for distributing and using packages.
Shamless plug: Wasmer [1] and WAPM [2] could help a lot on this quest!
[1]: https://wasmer.io/
[2]: https://wapm.io/
- WordPress WASM
-
A Look at Performance in Wasmtime and Cranelift
There's WAPM
-
Packaging and shipping your software
If it's buildable for the WebAssembly WASI target, consider also distributing it through WAPM.
-
Announcing Cargo WAPM
I don't know if many people have heard of it, but there's actually a WebAssembly Package Manager. It's similar to crates.io, except you upload WebAssembly binaries written in any language instead of Rust source code!
-
There’s a cunning workaround for this challenge; rather than compiling JS to Wasm, you can instead compile a JavaScript engine to WebAssembly then use that to execute your code.
You can see this paying off with wapm, which lets you download applications that would have normally required compilation for your environment and run them anywhere with a supported runtime, which is imo pretty neat.
-
Security advisory: malicious crate rustdecimal | Rust Blog
One step closer to the day when I can put actix-web creations up on WAPM so "Just type wax my-cool-thing to try it out" can be one of the distribution options.
-
WebAssembly in my Browser Desktop Environment
I've added limited support to run wapm.io directly from the Terminal. Examples of commands that work well are wapm cowsay {Text} and wapm uuid.
wordpress-playground
-
Things you forgot because of React
Sorry friend, WordPress already beat you to it: https://github.com/WordPress/wordpress-playground
- WordPress Playground: A WordPress that runs entirely in the browser
-
WordPress Playground: A WordPress that runs in the browser
> Is there a reason why using OPFS directly from SQLite doesn't work?
I'm guessing this means using SQLite WASM's built-in OPFS integration as described in these articles:
- sqlite3 WebAssembly documentation - Persistent Storage Options: OPFS - https://sqlite.org/wasm/doc/trunk/persistence.md#opfs
- SQLite Wasm in the browser backed by the Origin Private File System - https://developer.chrome.com/blog/sqlite-wasm-in-the-browser...
Within the Playground, SQLite interacts with the database file in MEMFS only, and the Playground coordinates the syncing from MEMFS to OPFS.
https://github.com/WordPress/wordpress-playground/tree/trunk...
The reason for this, I believe, is that the primary use case is/was to have the entire file system in memory, including SQLite's database file. This was the original implementation, and is still the default behavior. Persistence was later added as an optional feature.
The good news is that browser support for OPFS seems to be getting better. From the SQLite docs:
As of March 2023 the following browsers are known to have the necessary APIs:
-
WordPress Playground
One of the most exciting things at WordCamp Europe 2023 for me was discovering how far along the WordPress Playground project is. If you haven’t heard of the playground before, it’s a full version of WordPress, running directly in your browser!
-
WCGI: WebAssembly and CGI
WordPress has an official WebAssembly build for the browser and Node.js: https://developer.wordpress.org/playground https://github.com/WordPress/wordpress-playground
(Disclosure: I'm the creator)
-
WordPress testing official SQLite Support
I love the work going on there at WasmLabs, especially enjoying the articles with in-depth technical explorations.
After the article about running WordPress in the browser was published, there's a new project called WordPress Playground which is gradually preparing NPM or Composer packages to make it easier for people to run it.
https://github.com/WordPress/wordpress-playground/
They've been doing very detailed work, like making some patches to PHP and SQLite for improved compatibility with Emscripten, etc. It seems there's a lot of overlap with what WasmLabs has achieved and probably have continued to develop further. Perhaps there's an opportunity for collaboration.
- WordPress WASM
-
Hacker News top posts: Sep 25, 2022
WordPress WASM\ (28 comments)
What are some alternatives?
WASM-ImageMagick - Webassembly compilation of https://github.com/ImageMagick/ImageMagick & samples
marmot - A distributed SQLite replicator built on top of NATS
js-dos - The best API for running dos programs in browser
dod - DOS on dope. The last MVC Web framework you'll ever need
wasmer-js - Monorepo for Javascript WebAssembly packages by Wasmer
webrcade - Feed-driven gaming
Boxedwine
wp-sqlite-db - A single file drop-in for using a SQLite database with WordPress. Based on the original SQLite Integration plugin.
Graphene - GraphQL framework for Python
Platform - Qbix Platform for powering Social Apps (http://qbix.com/platform)
ffmpeg.wasm - FFmpeg for browser, powered by WebAssembly
website - WebAssembly website