Glimesh / janus-ftl-orchestrator

A service used to manage multiple instances of janus-ftl-plugin for use at scale.
GNU Affero General Public License v3.0
15 stars 3 forks source link

🔌 We have a basic TLS1.3 server and test framework #1

Closed haydenmc closed 3 years ago

haydenmc commented 3 years ago

Initial commit - this introduces some abstractions to manage connections to FTL server instances and hopefully provide enough leeway to reasonably mock out these abstractions for unit testing.

This orchestration service will use a custom ASCII-based protocol to communicate with FTL server instances. Messages will be transmitted over a TCP connection secured by TLS, encrypted using pre-shared keys.

IConnection represents a connection to an FTL server instance - TlsConnection is the implementation of this interface for connections over TCP secured by TLS.

IConnectionManager represents a service used to accept new FTL connections. TlsConnectionManager is the implementation of this interface for TCP/TLS connections.

Orchestrator is what will likely become the meat of the program. It will receive new IConnection instances and pass messages between them to facilitate routing of video traffic.

A simple Orchestrator test been stood up in test/OrchestratorTests.cpp using Catch.

The README has some information on building and testing.