6 releases (breaking)

0.6.0 Apr 14, 2023
0.5.1 Mar 23, 2023
0.4.0 Jul 11, 2022
0.3.0 Mar 9, 2022
0.1.1 Sep 16, 2021

#1178 in WebAssembly

Download history 7/week @ 2024-02-25 79/week @ 2024-03-31

79 downloads per month

Apache-2.0 and maybe LGPL-3.0-or-later

33KB
734 lines

[!IMPORTANT] The examples in this repository are WebAssembly modules which consume interfaces defined in Smithy and communicate with providers over the stable ABI. Actors built as WebAssembly components consume interfaces defined using WIT. Examples of actor components can be found in the wasmCloud repo. Note that support for WIT is considered experimental at this time.

wasmCloud Examples

Example actors, capability providers, and other demonstrations

Actors

The following actors run as WebAssembly on wasmCloud hosts.

Example Description OCI Reference
(refer to example for latest version)
animal-image-downloader An actor that receives messages and makes HTTP requests, downloading a picture of an animal to a blobstore wasmcloud.azurecr.io/animal-image-downloader
echo An actor that listens on an HTTP port and returns a JSON payload describing the incoming request wasmcloud.azurecr.io/echo
echo-messaging An actor that listens on a message broker topic and replies wasmcloud.azurecr.io/echo-messaging
hello Canonical "hello world" actor that listens on an HTTP port and replies with a greeting wasmcloud.azurecr.io/hello
kvcounter An actor that uses the key-value store to increment a counter and return a value for every HTTP request it receives wasmcloud.azurecr.io/kvcounter
logging An actor that demonstrates the builtin logging capability provider wasmcloud.azurecr.io/logging
message-pub An actor that demonstrates receiving HTTP requests and publishing the request body as a message wasmcloud.azurecr.io/message-pub
random An actor that demonstrates the builtin random number generation capability provider wasmcloud.azurecr.io/random
todo-sql An todo-application using sql database, https server (with TLS), logging, and numbergen (unpublished)
todo An todo-application using keyvalue store, http server, and logging (unpublished)
xkcd A application that generates xkcd comics wasmcloud.azurecr.io/xkcd
ifconfig A tinygo actor that will return the external IP address of your http client (unpublished)

Interfaces

The following example interfaces are defined by Smithy models.

Example Description Capability contract Rust crate
cron A simple interface for invoking an actor at a specific time wasmcloud:example:cron wasmcloud-interface-cron
payments A simple interface for a payments capability provider (used in the Creating an Interface tutorial) wasmcloud:example:payments wasmcloud-examples-payments
runner A simple interface with a single 'Run' method wasmcloud:example:runner wasmcloud-examples-runner
timing A simple interface for retrieving the current timestamp from the host wasmcloud:timing wasmcloud-interface-timing

Capability providers

Providers of capabilities for wasmCloud actors

Example Description Capability contract OCI Reference
cron A capability provider that uses cron expressions to invoke actors on a timed interval wasmcloud:example:cron wasmcloud.azurecr.io/cron
factorial A capability provider that computes factorial of a number wasmcloud:example:payments wasmcloud.azurecr.io/factorial
fakepay A simple payment provider, used in the Creating a capability provider tutorial wasmcloud:example:fakepay wasmcloud.azurecr.io/fakepay
timing An implementation of the wasmcloud:timing capability contract wasmcloud:timing

Applications

Example Description
petclinic A WebAssembly and wasmCloud-based reimagining of the classic Spring Boot microservices Pet Clinic. The wasmCloud Pet Clinic consists of multiple actors, and uses a relational database capability provider and an http server capability provider.
adsb A FlightAware clone that allows users to take an RTL-SDR and plot airplane data on a map. Users can also cluster many RTL-SDRs from all over the country and visualize them together utilizing the power of the wasmCloud lattice.

lib.rs:

wasmcloud:example:payments

Dependencies

~13–31MB
~507K SLoC