Skip to content

Outline clients, developed by Jigsaw. The Outline clients use the popular Shadowsocks protocol, and lean on the Cordova and Electron frameworks to support Windows, Android / ChromeOS, Linux, iOS and macOS.

License

Jigsaw-Code/outline-client

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

)

I this PR, I upgraded several dependencies used by Linux service in order to use [C++20's coroutine](https://en.cppreference.com/w/cpp/language/coroutines), which is easier to understand than the legacy boost coroutine, also it will enable more features (like cancellation, multiple listeners) more easily.

* Upgrade `libboost` from `1.67` to `1.80`
* Upgrade `g++` from `9` to `10` (didn't upgrade to `11` or `12` for backward compatibility)
* Refactor the legacy boost coroutine with the new C++20 coroutine
* Some style refactoring according to [Google C++ Style Guide](https://google.github.io/styleguide/cppguide.html)
* Statically links standard C++ library to support more OS versions
5a0665a

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
Mar 15, 2018

Outline Client

Build and Test Mattermost Reddit

The Outline Client is a cross-platform VPN or proxy client for Windows, macOS, iOS, Android, and ChromeOS. The Outline Client is designed for use with the Outline Server software, but it is fully compatible with any Shadowsocks server.

The client's user interface is implemented in Polymer 2.0. Platform support is provided by Cordova and Electron, with additional native components in this repository.

To join our Outline Community, sign up for the IFF Mattermost.

Requirements for all builds

All builds require Node 16 (lts/gallium), in addition to other per-platform requirements.

💡 NOTE: if you have nvm installed, run nvm use to switch to the correct node version!

After cloning this repo, install all node dependencies:

npm install

Building the shared web app

Outline clients share the same web app across all platforms. This code is located in the src/www directory. If you are making changes to the shared web app and do not need to test platform-specific functionality, you can test in a desktop browser by running:

npm run action src/www/start

The latter command will open a browser instance running the app. Browser platform development will use fake servers to test successful and unsuccessful connections.

The app logic is located in src/www/app. UI components are located in src/www/ui_components. If you want to work specifically on an individual UI element, try the storybook!:

npm run action src/www/storybook

💡 NOTE: the src part of the path is optional. npm run action www/start resolves to the same script.

💡 NOTE: every script in this repository can be run with npm run action - for a CLI-like experience, add something like

alias outline="npm run action"

(you can call it whatever you like)

to your shell, then try outline www/start!

Accepting a server invite

Looking for instructions on how to accept a server invite?

Platform-specific development

Each platform is handled differently:

  1. Developing for Apple (MacOS and iOS)
  2. Developing for Android
  3. Developing for Electron (Windows and Linux)

Localization

We have several pipelines for managing message localization.

Error reporting

To enable error reporting through Sentry for local builds, run:

export SENTRY_DSN=[Sentry development API key]
[platform-specific build command]

Release builds on CI are configured with a production Sentry API key.

Support

For support and to contact us, see: https://support.getoutline.org.

About

Outline clients, developed by Jigsaw. The Outline clients use the popular Shadowsocks protocol, and lean on the Cordova and Electron frameworks to support Windows, Android / ChromeOS, Linux, iOS and macOS.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published