Netcode for GameObjects (Netcode) uses Unity’s UNet Transport Layer API by default and has support for custom Transports.
A Transport collects messages from the application and transmits them over the network. The Transport layer is also responsible for making sure that all packets arrive and that they arrive in order if needed. Transports also make sure that your data won't get corrupted when it's sent over the network.
Netcode supports community contributions for Transport implementations. See the Netcode Community Contributions repository to learn more.
To use a Transport, follow the Community Transport Installation Guide.
To get started writing Transport interfaces, the current implementations for UNet Transport Layer API, ENET, and Ruffles are good starting points for learning their flow. If you write a wrapper for a well-known Transport, please open a PR to add it to the Netcode Contribution repository.
Check our contribution guidelines for information on how to contribute to the Netcode Community Contribution repository.