From 3efd9506c6adbe717e236c31d00e99d531dcf3b2 Mon Sep 17 00:00:00 2001 From: Brooks Townsend Date: Wed, 17 Apr 2024 17:54:45 -0400 Subject: [PATCH] chore: update README based on documentation Signed-off-by: Brooks Townsend --- README.md | 56 ++++++++----------- .../http-keyvalue-counter/README.md | 2 +- 2 files changed, 23 insertions(+), 35 deletions(-) diff --git a/README.md b/README.md index d62c8a1ec7..1a8f33c400 100644 --- a/README.md +++ b/README.md @@ -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)
@@ -13,26 +13,24 @@ ![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 @@ -40,24 +38,28 @@ If you're new to the wasmCloud ecosystem, a great place to start is the [getting ## 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 @@ -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 @@ -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. diff --git a/examples/rust/components/http-keyvalue-counter/README.md b/examples/rust/components/http-keyvalue-counter/README.md index 2a71a9ad97..78ef532d0b 100644 --- a/examples/rust/components/http-keyvalue-counter/README.md +++ b/examples/rust/components/http-keyvalue-counter/README.md @@ -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