Skip to content

Latest commit

 

History

26 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LGProtocol

LGProtocol is a standalone distribution of the Looking Glass wire protocol. Its install surface contains portable KVMFR and network transport protocol headers, shared network identity constants, plus reusable network serialization and validation codecs.

Consumers include protocol declarations from the exported include root, for example:

#include <LGProtocol/KVMFR.h>
#include <LGProtocol/NetworkServices.h>

CMake packages expose the header-only LGProtocol::LGProtocol interface target. The target requires C11 or C++11 and adds only the installed include root:

find_package(LGProtocol REQUIRED)
target_link_libraries(my_target PRIVATE LGProtocol::LGProtocol)

Consumers that call the network codec functions link the static LGProtocol::Network target instead. It supplies the stream readers and writers, packet framing, serialization, parsing, and protocol validation while also providing the public headers transitively:

find_package(LGProtocol REQUIRED)
target_link_libraries(my_target PRIVATE LGProtocol::Network)

Configure and run the native validation suite with:

cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build
ctest --test-dir build --output-on-failure

ABI constraints

The common wire format uses default x86-64 Linux/Windows packing, native little-endian values, 32-bit C enums and int, eight-bit bytes, and 32-bit IEEE-754 float. Short-enum compilation is incompatible. KVMFRFrameBuffer requires the four-byte, four-byte-aligned, lock-free KVMFRFrameBufferWritePointer atomic type. The umbrella retains source-visible trailing arrays, so C and C++ compilers must accept the documented zero-length/unsized-array extensions.

License

Except where otherwise stated, every file in this repository is publicly licensed under the GNU General Public License, version 2 or (at your option) any later version (GPL-2.0-or-later). See LICENSE.

Alternative license terms are available only under a separate written agreement with the copyright holder. Such an agreement is independent of, and does not restrict, the rights granted under the public GPL license.

About

Header-only distribution of the Looking Glass wire protocol declarations

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages