Skip to content

Commit

Permalink
new: water-go cross-platform support (#6)
Browse files Browse the repository at this point in the history
Signed-off-by: Gaukas Wang <[email protected]>
  • Loading branch information
gaukas authored Mar 6, 2024
1 parent c537dd8 commit 1c052b8
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 10 deletions.
10 changes: 0 additions & 10 deletions runtime/go.md

This file was deleted.

30 changes: 30 additions & 0 deletions runtime/go/cross-platform.md
Original file line number Diff line number Diff line change
@@ -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`.
16 changes: 16 additions & 0 deletions runtime/go/go.md
Original file line number Diff line number Diff line change
@@ -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.

0 comments on commit 1c052b8

Please sign in to comment.