Skip to content

Commit

Permalink
chore: update README based on documentation
Browse files Browse the repository at this point in the history
Signed-off-by: Brooks Townsend <brooksmtownsend@gmail.com>
  • Loading branch information
brooksmtownsend committed Apr 17, 2024
1 parent 715feda commit 3efd950
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 35 deletions.
56 changes: 22 additions & 34 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[![Homepage and Documentation](https://img.shields.io/website?label=Homepage&url=https%3A%2F%2Fwasmcloud.com)](https://wasmcloud.com)
[![Documentation](https://img.shields.io/website?label=Documentation&url=https%3A%2F%2Fwasmcloud.com)](https://wasmcloud.com)
[![CNCF sandbox project](https://img.shields.io/website?label=CNCF%20Sandbox%20Project&url=https://landscape.cncf.io/?selected=wasm-cloud)](https://landscape.cncf.io/?selected=wasm-cloud)
[![Stars](https://img.shields.io/github/stars/wasmcloud?color=gold&label=wasmCloud%20Org%20Stars)](https://github.com/wasmcloud/)
![Powered by WebAssembly](https://img.shields.io/badge/powered%20by-WebAssembly-orange.svg)<br />
Expand All @@ -13,51 +13,53 @@

![wasmCloud logo](https://raw.githubusercontent.com/wasmCloud/branding/main/02.Horizontal%20Version/Pixel/PNG/Wasmcloud.Logo-Hrztl_Color.png)

# 💻 Distributed computing, _simplified_
wasmCloud is a **universal application platform** that helps you build and run globally distributed WebAssembly applications on any cloud or edge. Our goal is to make development more joyful and efficient by giving developers the tools to write only the code that matters—and making it easy to run that code anywhere.

The wasmCloud runtime is a vessel for running applications in the cloud, at the edge, in the browser, on small devices, and anywhere else you can imagine.
wasmCloud leverages WebAssembly's security, portability, and performance to compose applications from tiny, independent building blocks.These building blocks are managed declaratively and reconfigurable at runtime. You shouldn't need to recompile your whole app to upgrade a database client or patch a vulnerability and you shouldn't need to recompile anything to move your app from development to production.

**Move from concept to production without changing your design, architecture, or your programming environment.**

wasmCloud lets you focus on shipping _features_. Build secure, portable, re-usable components. Get rid of the headaches from being smothered by boilerplate, dependency hell, tight coupling, and designs mandated by your infrastructure.
wasmCloud is designed around the following core tenets:

## Core Tenets

- Dead simple distributed applications
- Run anywhere
- Distributed from day one
- Run anywhere and everywhere
- Secure by default
- Productivity for both developers and operations
- Faster iteration and lower maintenance

**Move from concept to production without changing your design, architecture, or your programming environment.**

# Getting Started

## Installation

Install the wasmCloud Shell (`wash`) with [one command](https://wasmcloud.com/docs/installation).
Install the wasmCloud Shell (`wash`) using the [installation guide](https://wasmcloud.com/docs/installation).

## Walkthrough

If you're new to the wasmCloud ecosystem, a great place to start is the [getting started](https://wasmcloud.com/docs/getting-started/) walkthrough.

## Quickstart

The following commands launch wasmCloud in a local development environment and deploy a simple "hello world" WebAssembly module.
The following commands launch wasmCloud in a local development environment and deploy a simple "hello world" WebAssembly component, written in Rust, Go, TypeScript, or Python.

```console
wash up -d
wash new actor -t hello hello
wash app deploy ./hello/wadm.yaml
wash new component helloworld
wash app deploy ./helloworld/wadm.yaml
curl localhost:8080
```

## Examples
## Features

### WebAssembly Modules (Stable ABI)
1. [Declarative WebAssembly Orchestration](https://wasmcloud.com/docs/concepts/applications)
2. [Seamless Distributed Networking](https://wasmcloud.com/docs/concepts/lattice)
3. [Vendorless Application Components](https://wasmcloud.com/docs/concepts/components#application-components)
4. [Completely OTEL Observable](https://wasmcloud.com/docs/category/observability)
5. [Defense-In-Depth Security By Default](https://wasmcloud.com/docs/category/security)

wasmCloud has a wide range of [examples](https://github.com/wasmCloud/examples/) built on the [stable ABI](https://wasmcloud.com/docs/hosts/abis/wasmbus/). This includes components, providers, interfaces, and full applications we've created to demonstrate how to design, compose, and build applications in wasmCloud.
## Examples

### **Experimental** WASI Preview 2 WebAssembly Components
### WASI 0.2 WebAssembly Components

wasmCloud is actively staying up-to-date with WASI Preview 2 and the Component Model. For components which consume interfaces defined in [WIT](https://github.com/WebAssembly/component-model/blob/main/design/mvp/WIT.md), see examples in the [`examples` directory of this repository](./examples).
wasmCloud is based on and implements WASI 0.2 (aka the Component Model.) For components which consume interfaces defined in [WIT](https://github.com/WebAssembly/component-model/blob/main/design/mvp/WIT.md), see examples in the [`examples` directory of this repository](./examples). Examples are organized by language so you can easily find samples in your language of choice.

### 💥 Awesome wasmCloud

Expand Down Expand Up @@ -117,12 +119,6 @@ wasmCloud's [standard runtime](./crates/runtime) is built in Rust for its zero-c

For running a wasmCloud host in a browser or embedding in a JavaScript V8 host, use the [JavaScript Runtime](https://github.com/wasmCloud/wasmcloud-js)

### ☁️ Elixir/OTP Runtime (`Deprecated`)

**Note**: The OTP Runtime is now **deprecated**.

~~The [Elixir/OTP](https://github.com/wasmCloud/wasmcloud-otp) runtime leverages Elixir/OTP for its battle-tested, massively-scalable foundation. It also leverages a Rust library.~~

---

## SDKs and libraries
Expand All @@ -131,14 +127,6 @@ For running a wasmCloud host in a browser or embedding in a JavaScript V8 host,

wasmCloud provides an [SDK](./crates/provider-sdk) for building capability providers in Rust.

### Go Provider SDK (`Experimental`)

wasmCloud also has an [**experimental** SDK](https://github.com/wasmCloud/provider-sdk-go) for building capability providers in Go.

### Provider Bindgen from WIT Interfaces (`Experimental`)

[`wasmcloud-provider-wit-bindgen`](./crates/provider-wit-bindgen) is a Rust macro used to generate code for [capability providers](./crates/providers).

### Provider Archive

[`provider-archive`](./crates/provider-archive) is a crate used to create Provider Archive (PAR) files. PARs are used to store, retrieve, and sign capability providers. Today, capability providers are distributed as binary files and run as system processes. In the future, wasmCloud aims to build capability providers as WebAssembly Components, which will remove the need for Provider Archives.
Expand Down
2 changes: 1 addition & 1 deletion examples/rust/components/http-keyvalue-counter/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# HTTP KeyValue Counter

This is a simple Rust Wasm example that increments a key in a keyvalue store in response to an HTTP request based on the path. This component uses the [wasi-http](https://github.com/WebAssembly/wasi-http) API to receive HTTP requests and the [wasi-keyvalue](https://github.com/WebAssembly/wasi-keyvalue) API to interact with a keyvalue store. At runtime we [link](https://wasmcloud.com/docs/1.0/concepts/linking-components) this component to an implementation of wasi-keyvalue that interacts with [Redis](https://redis.io/).
This is a simple Rust Wasm example that increments a key in a keyvalue store in response to an HTTP request based on the path. This component uses the [wasi-http](https://github.com/WebAssembly/wasi-http) API to receive HTTP requests and the [wasi-keyvalue](https://github.com/WebAssembly/wasi-keyvalue) API to interact with a keyvalue store. At runtime we [link](https://wasmcloud.com/docs/concepts/linking-components) this component to an implementation of wasi-keyvalue that interacts with [Redis](https://redis.io/).

## Prerequisites

Expand Down

0 comments on commit 3efd950

Please sign in to comment.