Falcon Network
Minecraft: Bedrock Edition transport layer written in C++17
Everything between the socket and a decoded Bedrock packet. It is the transport layer of Falcon and builds on top of Protocol.
- RakNet - own implementation of the peer, sockets, bit stream, reliability layer and connection handshake
- NetherNet - WebRTC transport through libdatachannel, with the signaling server and LAN discovery
- Peers - batching and compression layers stacked on top of the raw transport, behind a common
NetworkPeerinterface - Connection requests - parsing of the client login JWT (identity, skin, device)
- Server locator - the pong data advertised to the server list
The library is a plain CMake target named FalconNetwork. When it is built on its own, it fetches
Protocol and libdatachannel automatically:
include(FetchContent)
FetchContent_Declare(
falcon_network
GIT_REPOSITORY https://github.com/Falcon-MC/Network.git
GIT_TAG main
GIT_SHALLOW TRUE
)
FetchContent_MakeAvailable(falcon_network)
target_link_libraries(your_target PRIVATE FalconNetwork)Requires CMake 3.16+, a C++17 compiler, zlib and OpenSSL. The first configure needs network access to fetch the dependencies.
cmake -B build -G Ninja
cmake --build build
- Falcon - the server
- Protocol - packets and network types
- NBT - NBT tags and binary streams
- BedrockData - game data files, versioned by protocol
Falcon Network is licensed under the GNU Lesser General Public License v3.0, which supplements the GNU General Public License v3.0. It can be linked from projects under any license, as long as changes to this library itself stay under the same license.
Falcon is not affiliated with Mojang. All brands and trademarks belong to their respective owners.