Get started »
View Documentation • Report a Bug • Contribute
Table of Contents
Wasm-RTk is a collection of WebAssembly development tools allowing for easier development than is initially made available in the WebAssembly environment. Beyond utilities like IO, cryptography, and artificial intelligence (maybe), I also want to build a compiler for a language that specifically implements, in WebAssembly, many of the techniques I have though of while writing these libraries, like Object Oriented Programming.
If you are interested in adding or contributing to anything in this collection, please create an issue.
This repository started with the simple idea of implementing a multipurpose websocket server, utilizing WebAssembly in the process to be as fast as possible. I quickly realized, however, that there was a problem with this plan. WebAssembly is just about as native and bare-metal as you get on the web, but that comes at the cost of having virtually nothing available to use at the start. This is why I began work on the first library in this collection.
Looking around and roadmapping what I wanted to do, I eventually came to the decision that dynamic memory allocation was something that I absolutely had to tackle early on. Next, I didn't want to use anything like Emscripten, mostly because it looked like a hassle to install and use. Furthermore, I enjoyed knowing that I was learning something knew when I decided to write said library entirely using WebAssembly Text S-Expressions.
While I don't recommend the experience of writing a full-blown dynamic memory allocator in an assembly language, it created new ideas about how much of the high-level programming language luxuries I enjoy today were created. The biggest of these was thinking about how object-oriented programming is implemented. I would go on to imagine writing yet another compiler that targets WebAssembly binaries and implements many of the features that I feel WebAssembly lacks, while maintaining it's original power.
If you want to get started using these libraries, I have a whole directory dedicated to documentation in this repository. You can start reading here.
Check the list of open issues to get an idea of planned additions.
Check out the contributing guidelines for information on contributing to this repository.
The license can be found at LICENSE
WebAssembly logo by Carlos Baraza, CC0, via Wikimedia Commons