/tinyNet

Primary LanguageC++GNU General Public License v3.0GPL-3.0

tinyNet


Tiny Networking examples done on streaming via Twitch (In Spanish) and It's saved on Youtube
Inspired by this theCherno video, I wanted to create the following videos/features.

  • Create Server UDP (Linux/Windows).
  • Create Client UDP (Linux/Windows).
    • Move all Common code into a new struct/class
    • Client maybe will create a jthread to wait messages from server.
  • Change std::string by protobuf for message interchange.
  • Compress/decompress messages (with some compression algorithm, just for fun).
  • Encrypt messages with something simple (just for fun).

I'm following and trying to create something simpler of Valve's GameNetworkingSockets.

Building

Dependencies

  • CMake 3.10 or later
  • A build tool like Ninja, GNU Make or Visual Studio
  • A C++23-compliant compiler, such as:
    • GCC 13 or later
    • Clang 16 or later
    • Visual Studio 2022 or later
  • Vcpkg
    • build-essential
    • tar
    • curl
    • zip
    • unzip

Using CMake (preferred):

CMake presets:
  • gcc:
    • gcc_debug
    • gcc_release
  • clang:
    • clang_debug
    • clang_release
  • Windows MVSC (Visual Studio 2022):
    • wind_debug
    • wind_release
  • Windows Clang (Visual Studio 2022):
    • wind_clang_debug
    • wind_clang_release

Let's see an example with gcc_release as preset, but you can choose another from this list.

$ git clone --recurse-submodules https://github.com/parequena/tinyNet
$ ./libs/vcpkg/bootstrap-vcpkg.sh
$ mkdir build
$ cd build
$ cmake .. --preset gcc_release
$ cd gcc_release
$ cmake --build . -j

Social Media

If you wanna get in touch:

LinkedIn
Twitter (Spanish)
Twitch (Spanish): Not always streaming C++.
Yotube (Spanish): C++ programming courses (?)