Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/expressvpn/lightway-laser

Lightway Laser is a reference point-to-point Linux client/server implementation for Lightway Core.
https://github.com/expressvpn/lightway-laser

vpn vpn-protocols vpn-server

Last synced: 2 months ago
JSON representation

Lightway Laser is a reference point-to-point Linux client/server implementation for Lightway Core.

Awesome Lists containing this project

README

        

////
Lightway Laser
Copyright (C) 2021 Express VPN International Ltd.

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
////
= Lightway Laser - Lightway Reference Client/Server

This is an intentionally limited reference client/server application that creates a point-to-point
private connection between two Linux machines using https://github.com/expressvpn/lightway-core[Lightway Core].

== Spin It All Up in Docker and Run an Integration Test

[source,bash]
docker compose -f docker-compose.yml -f docker-compose-run.yml up --exit-code-from cli

== Spin Up Interactive Docker Containers for Live Builds

[source,bash]
docker compose -f docker-compose.yml -f docker-compose-dev.yml up
# In another terminal
docker compose exec server /bin/bash
# In yet another terminal
docker compose exec cli /bin/bash

== Build and Run Client/Server

. Install ceedling
+
[source,bash]
gem install ceedling

. Setup the network (server-only)
+
[source,bash]
scripts/setup_nat_tun.sh

. Build binary
+
[source,bash]
ceedling release

. Start server
+
[source,bash]
scripts/run_server.sh

. Start client (on a different machine or container)
+
[source,bash]
scripts/run_iperf_client.sh