NetLib is a collection of tools and libraries to connect Nintendo 64 homebrew to the internet by leveraging the USB port on developer (and consumer) flashcarts for internet connectivity. The repository contains some example game servers (a "Hello World" example, a Tic-Tac-Toe example, and an example demonstrating the components of realtime game (prediction, reconciliation interpolation, and lag compensation)), a master server application for game servers to register themselves to, a client application to act as the server browser and USB tether, and finally a library for the N64. The master server and game server examples are written in Java, the client app is written in C++ with wxWidgets, and the N64 library is written in C for the Libultra and Libdragon SDKs. Everything is designed to work in UDP, and implements a reliability system not too different from Valve's GameNetworkingSockets. The source code for everything is also thoroughly documented, and the repository contains a wiki with plenty of information about the networking protocol, how to extend it (if necessary), and how to write your own game servers and NetLib compatible N64 games.
During the console's lifespan, the console actually had online connectivity. Morita Shogi 64 was a game that had a special cartridge with a RJ-11 modem connection port on top, allowing for competitive multiplayer. There were also two special carts specifically for facilitating an online connection, being the modem cart that came with the Nintendo 64DD (a rare peripheral device which comercially flopped and so was only available in Japan) and the SharkWire cart. The former allowed one to connect to Nintendo's official Randnet service, and the latter allowed the user to connect to GameShark's unofficial service. Both of these were basically just fancy web browsers for some proprietary online services, and are obviously long defunct. Nowadays, if a user wants to play N64 games online, they will need to use an emulator with online connectivity, but this obviously will have innumerous downsides as the games are not designed to be used for multiplayer, and the emulators do not modify the games to fix any potential drawbacks of P2P connections.
Given the rarity of these devices (plus modem connections are a little bit outdated), and the fact that the SummerCart64 (a developer flashcart with USB) has (for better or worse) become a widespread cartridge thanks to some very shady websites selling them for suspicously cheap, I decided leverage the work I had already done with writing a USB driver library for the N64 to also allow people on their physical consoles to be able to write software for online multiplayer. Now, one might ask why you would want to subject yourself to developing an online game for a console that is already very difficult to program for, but that's not something that concerns me too much because I'm just happy that I was the first person to do something like this. It was also a very fun technical challenge for myself because while I have plenty of experience developing projects for multiplayer games which require that I be aware of concepts like clientside prediction and desynchronization, I had never fully grasped what was going on under the hood. This project gave me a new appreciation for all of the systems that makes shooting someone across the world in the face as seamless as possible.