Presented by Couchbase and Cosmonic maintainers.
This repository contains everything you need to get started with the workshop:
In this workshop, we'll be building NuBase, an experimental new database with an HTTP API, powered by Couchbase.
By the end of the workshop, we will:
- Examine the HTTP & Couchbase native WebAssembly Interface Type ("WIT") interfaces
- Build a HTTP API WebAssembly-native database component, powered by Couchbase
- Run your database implementation locally with wasmCloud
Here's a run-down of the files in this repository:
Folder | Description |
---|---|
wit |
WIT definitions we'll be using during the talk |
nubase |
Code for the Database component we'll finish as part of this workshop |
If using GitPod, you can launch .gitpod.yml
file in this repository, and make an account at GitPod.io if necessary to get into an environment that "just works"!
To use GitHub devcontainers to run this project, you can run
just start-devcontainer
Note
If you prefer to not use just
, run devcontainer up --workspace-folder .
See Justfile
for more recipes and the commands they run.
To run manually, ensure that you have the following tools installed:
Dependency | Description | Easy install method |
---|---|---|
just |
Task runner (similar to GNU make ) |
cargo install just |
wash |
WAsmcloud SHell - a tool for managing wasmCloud instances | cargo install wash-cli |
wit-deps |
Manual downloading of WIT interfaces | cargo install wit-deps-cli |
wasm-tools |
WebAssembly toolkit (used during code generation) | cargo install wasm-tools |
tinygo |
TinyGo toolchain | tingyo install guide |
go |
Go toolchain | go install guide |
You can easily check which tools are not installed by running:
just check
Once you have all required tools installed, you can build the project by running:
just build
Then, start Couchbase, using docker compose
:
just start-couchbase
From here, you can start developing the component:
just dev