From 1c052b862713fa75a8c471393e35053e55fa8571 Mon Sep 17 00:00:00 2001 From: Gaukas Wang Date: Tue, 5 Mar 2024 20:41:39 -0700 Subject: [PATCH] new: water-go cross-platform support (#6) Signed-off-by: Gaukas Wang --- runtime/go.md | 10 ---------- runtime/go/cross-platform.md | 30 ++++++++++++++++++++++++++++++ runtime/go/go.md | 16 ++++++++++++++++ 3 files changed, 46 insertions(+), 10 deletions(-) delete mode 100644 runtime/go.md create mode 100644 runtime/go/cross-platform.md create mode 100644 runtime/go/go.md diff --git a/runtime/go.md b/runtime/go.md deleted file mode 100644 index f04f0d8..0000000 --- a/runtime/go.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -layout: default -title: Runtime Library in Go -parent: Runtime Library -nav_order: 1 ---- - -# Runtime Library in Go - -WATER Runtime Library for Go (a.k.a. `water-go`). \ No newline at end of file diff --git a/runtime/go/cross-platform.md b/runtime/go/cross-platform.md new file mode 100644 index 0000000..c487925 --- /dev/null +++ b/runtime/go/cross-platform.md @@ -0,0 +1,30 @@ +--- +layout: default +title: Cross-platform Compatibility (Go) +grand_parent: Runtime Library +parent: Runtime Library in Go +nav_order: 1 +--- + +# Cross-platform Support + +The end goal of Project WATER is to provide a universal pluggable network transport layer that harnesses the power of WebAssembly to enable the Rapid Deployment of new network transport protocols on even the least flexible platforms such as smartphones with strict and slow app store review processes. + +To achieve this, Project WATER is designed to be cross-platform and cross-architecture. The WATER maintainers are dedicated to expanding the cross-platform support of the runtime libraries to as many platforms as possible. + +## Platform Support Matrix + +Currently, `water` supports the following platforms: + +| Target | Compiles? | Tests Pass? | +| ------------------ | --------- | ----------- | +| linux/amd64 | ✅ | ✅ | +| linux/arm64 | ✅ | ✅ | +| linux/riscv64 | ✅ | ✅ | +| macos/amd64 | ✅ | ✅ | +| macos/arm64 | ✅ | ✅ | +| windows/amd64 | ✅ | ✅ | +| windows/arm64 | ✅ | ❓ | +| others | ❓ | ❓ | + +Due to the absence of a machine in `windows/arm64`, we could not run tests on this platform. The compilation compatibility is tested by cross-compiling from `windows/amd64` to `windows/arm64`. \ No newline at end of file diff --git a/runtime/go/go.md b/runtime/go/go.md new file mode 100644 index 0000000..4a7b14b --- /dev/null +++ b/runtime/go/go.md @@ -0,0 +1,16 @@ +--- +layout: default +title: Runtime Library in Go +parent: Runtime Library +nav_order: 1 +has_children: true +permalink: /runtime/go.html +--- + +# Runtime Library in Go + +WATER Runtime Library for Go (a.k.a. `water-go`) is built with [wazero](https://github.com/tetratelabs/wazero) providing the WebAssembly runtime with WASI support, and implements an abstracted network programming interface that roughly ressembles the standard `net` package in Go. + +## Cross-platform Support + +Project WATER is designed to be cross-platform and cross-architecture. See [Cross-platform Compatibility (Go)](./go/cross-platform.html) for more details. \ No newline at end of file