From 4c71f86c35dae4a3045287ba6379ae5c8445921c Mon Sep 17 00:00:00 2001 From: Vinicius Fortuna Date: Wed, 19 Jul 2023 15:27:32 -0400 Subject: [PATCH] chore: update README with missing tasks (#29) * Update README.md Adding missing tasks * Reorder integration * Update README.md * Update README.md Co-authored-by: J. Yi <93548144+jyyi1@users.noreply.github.com> * Update README.md Co-authored-by: J. Yi <93548144+jyyi1@users.noreply.github.com> --------- Co-authored-by: J. Yi <93548144+jyyi1@users.noreply.github.com> --- README.md | 34 +++++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 2f8e1252..91def7ed 100644 --- a/README.md +++ b/README.md @@ -29,8 +29,8 @@ The Outline SDK helps developers: The Outline SDK is written in Go. There are multiple ways to integrate the Outline SDK into your app: - As a **Go library** ([reference](https://pkg.go.dev/github.com/Jigsaw-Code/outline-internal-sdk)), in a Go application (CLI or graphical app with frameworks like [Fyne.io](https://fyne.io/), [Wails](https://wails.io/), [Qt for Go](https://therecipe.github.io/qt/), or [Go Mobile app](https://pkg.go.dev/golang.org/x/mobile/app)) -- As a native **mobile library**, using [`gomobile bind`](https://pkg.go.dev/golang.org/x/mobile/cmd/gomobile) to generate Java and Objective-C bindings for Android, iOS and macOS. - As a **C library**, generated using the appropriate [Go build mode](https://pkg.go.dev/cmd/go#hdr-Build_modes). +- As a native **mobile library**, using [`gomobile bind`](https://pkg.go.dev/golang.org/x/mobile/cmd/gomobile) to generate Java and Objective-C bindings for Android, iOS and macOS. - As a **side service**, built as a standalone Go binary that your main application talks to. Note that this is not possible on iOS, due to the limitation on starting sub-processes. The Outline Client uses the mobile library approach on Android, iOS and macOS (based on Cordova) and the side service on Windows and Linux (based on Electron). @@ -47,15 +47,19 @@ The code in this repository will move to https://github.com/Jigsaw-Code/outline- Alpha tasks: -- Add Transport libraries - - [x] Generic transport client primitives (`StreamDialer`, `PacketListener` and Endpoints) - - [x] TCP and UDP client implementations - - [x] Shadowsocks client implementations +- Transport-level libraries + - [x] Add generic transport client primitives (`StreamDialer`, `PacketListener` and Endpoints) + - [x] Add TCP and UDP client implementations + - [x] Add Shadowsocks client implementations + - [x] Use transport libraries in the Outline Client + - [x] Use transport libraries in the Outline Server + +- Network-level libraries + - [x] Add IP Device abstraction + - [x] Add IP Device implementation based on go-tun2socks (LWIP) + - [ ] Add UDP handler to fallback to DNS-over-TCP + - [ ] Add DelegatePacketProxy -- Add Network libraries - - [x] IP Device abstraction - - [x] Implementation based on go-tun2socks (LWIP) - - [ ] UDP handler to fallback to DNS-over-TCP ### Beta @@ -63,6 +67,18 @@ The goal of the Beta release is to communicate that the SDK is ready for broader Beta tasks: +- Network libraries + - [ ] Use network libraries in the Outline Client + - [ ] Add extensive testing + +- Serverless transport libraries + - [ ] Encrypted DNS + - [ ] Packet splitting + +- Proxy transport libraries + - [ ] HTTP Connect + - [ ] SOCKS5 + - Add Resources - [ ] Website - [ ] Bindings