Skip to content

Parumezan/TypeLink

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A simple multi-threaded & cross-platform network library

📋 Table of Contents

Click to reveal

🔍 About

TypeLink is a simple multi-threaded & cross-platform network library, it is not yet finished and is still in development.

The following features are planned:

  • TCP
  • UDP
  • Multithreading
  • Cross-platform

The idea behind it is to be able to call a server or a client with a minimum of things to configure and to be able to use it quickly. An example server/client is available on the testing branch. This library has its origins in several school projects with the network as the main topic, so please bear with this library without much ambition. If more and more improvements are proposed, I would put a PR / Issues Template

💻 Requirements

Supported operating systems:

  • Windows (untested)
  • Linux (tested on Ubuntu 22.04)
  • MacOS (untested)

Dependencies:

🔧 Building

🔗 Link with CMake

🎮 Testing Branch

Go first to the testing branch, then:

Launch typelink.sh (linux/MacOS) or typelink.bat (Windows) to start the building of the project. It will automatically:

  • Build the link_client and link_server executables (.exe on Windows) using those libraries

To see an example of how to use the library, you can check the TypeLink/Server/main.cpp and TypeLink/Client/main.cpp files.

📝 Documentation

The documentation is not yet available, but it will be soon.

🏛️ Architecture

The architecture of the library is available in the form of a diagram using the puml framework, the diagram file is updated and available here.

⚠️ Bugs

  • Because of the select() function present to ensure the cross-platform more easily, the limit of users is fixed on the UNIX systems at 1024, the will here is not in the immediate future to look at how Windows works at the level of the "file descriptor" but to create a simple and cross-platform library. If the need is felt, a PR will be welcome, or I will do it myself in the future if I am asked. I may have fixed the problem by changing some things in my code, however I've seen a lot of warnings about this problem, so I'll see if there is anything to do or not.

🤝 Authors

Made by Pibé 🐙