Skip to content

expressvpn/lightway-core

Repository files navigation

Lightway Core

Lightway Core is a modern VPN protocol by ExpressVPN, to deliver a VPN experience that’s faster, more secure, and more reliable.

ExpressVPN

One of the world’s largest providers of VPN services, ExpressVPN enables users to protect their privacy and security online with just a few clicks. The company’s award-winning apps for Windows, Mac, iOS, Android, Linux, routers, and browsers secure user information and identities with best-in-class encryption and leak-proofing.

For more information please visit https://www.expressvpn.com.

About Lightway Core

Lightway Core is a small, multi-platform C library that provides the foundational components of a virtual private network (VPN).

Lightway Core is the technology that powers Lightway, ExpressVPN’s pioneering new VPN protocol, built for an always-on world. It makes your VPN experience speedier, more secure, and more reliable than ever. Designed to be light on its feet, Lightway runs faster, uses less battery, and is easier to audit and maintain.

Note: Lightway Core may be referred to by the internal project name, libhelium, in the source code.

Development Environment

This project uses pre-commit to enforce code standards.

To install pre-commit, run: earthly +install-precommit.

Build and Run (Earthly)

The simplest way to build the static library for Linux, and run all tests is to use Earthly, which runs the build in a containerised environment.

earthly +all

Build and Run (Ceedling)

  1. Install ceedling gem somewhere on your path

    gem install ceedling
  2. Windows only: Start git-bash (or similar) via a Developer Command Prompt for VS 2019 for all subsequent commands

  3. Build and run tests, $PLATFORM is [linux|macos|windows]

    ceedling test project:$PLATFORM
  4. Build lib for release

    ceedling release project:$PLATFORM

Documentation

Documentation for Lightway Core can be found at https://lightway.com/docs. We use Antora to generate this documentation. The source code can be found in this repository at docs/modules/ROOT/pages.

API documentation, generated by Doxygen, can be found at https://lightway.com/doxygen/annotated.html.

Contributing

We appreciate feedback and contribution to this repository! Before you get started, please see CONTRIBUTING

Reporting a vulnerability

To report security vulnerabilities, please see section on Reporting a vulnerability

Acknowledgments

We rely on the following projects to build Lightway Core:

Preferred Languages

We prefer all communications to be in English.

License

This project is licensed under the GNU General Public License, version 2.