https://github.com/reflexe/protocollearn
Pet project: TCP/IP stack on userspace with C++
https://github.com/reflexe/protocollearn
ipv4 low-level-programming network tcp
Last synced: 10 months ago
JSON representation
Pet project: TCP/IP stack on userspace with C++
- Host: GitHub
- URL: https://github.com/reflexe/protocollearn
- Owner: Reflexe
- License: gpl-3.0
- Created: 2019-05-04T19:20:39.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2019-05-04T19:21:44.000Z (almost 7 years ago)
- Last Synced: 2025-04-20T22:32:31.520Z (10 months ago)
- Topics: ipv4, low-level-programming, network, tcp
- Language: C++
- Size: 790 KB
- Stars: 10
- Watchers: 3
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# ProtocolLearn

## Overview
ProtocolLearn is a C++ Network library for linux that pointed in Low level networking. ProtocolLearn is also providing an API for creating of new protocols.
## Get ProtocolLearn:
Note: ProtocolLearn uses [Git Submodules](https://git-scm.com/book/en/v2/Git-Tools-Submodules), therefore, the regular 'git clone [url]' command will download only the base repository without the submodules.
To download ProtocolLearn, run the following lines:
```console
git clone --recursive git@gitlab.com:ProtocolLearn/ProtocolLearn.git
```
## Getting Started
You can see the [Getting Started](https://github.com/ProtocolLearn/ProtocolLearn/wiki/Getting-Started) article in the wiki.
If you want to see examples of the using of ProtocolLearn, you can open the [Examples](https://github.com/ProtocolLearn/ProtocolLearn-Examples) repository.
If you interesting in a specific type of ProtocolLearn, please visit [ProtocolLearn's Wiki](https://github.com/ProtocolLearn/ProtocolLearn/wiki).
## ProtocolLearn Parts:
ProtoclLearn has three general parts:
* [Utilities](https://github.com/ProtocolLearn/ProtocolLearn-Utilities): Contains the core of ProtocolLearn: Types, Addresses (eg. Ipv4Address), helpers (StringFunctions, VectorFunctions, ByteOrder) and more.
* [Protocols](https://github.com/ProtocolLearn/ProtocolLearn-Protocols): Contains implomented protocols (eg. Ethernet and Ipv4).
* [Examples](https://github.com/ProtocolLearn/ProtocolLearn-Examples) and [Libraries](https://github.com/ProtocolLearn/ProtocolLearn-Libraries): In "Examples", there are examples for the usage of ProtocolLearn's implomented protocols. "Libraries" contains examples too, but with an option to add the example into your project.
## Build
First of all, you must have Linux machine, CMake, and GCC.
Open ProtocolLearn directory and run the build script:
```console
$ cd ~/ProtocolLearn
$ ./Build/Build.sh
```
It will take a few minutes.
Your executable files will be in the build directory.