WARNING: This library is still in heavy development and might contain bugs or undergo heavy changes at any time. |
---|
Core Kit is general purpose c++ 20 library with focus on networking specially containing commonly used tools and DHT node runner implementation.
- Library : Contains CoreKit library files
- Sample : Sample source codes
- Standard c++ 20 Library
- Openssl 1.1.0 or higher
Core Kit is a header based library, so to use it basically download it, point your compiler include path to it and use it.
Compile with -lssl -lcrypto
flags for open ssl and -std=c++2a
for c++ 20 standard libraries.
As an example to compile Main.cpp using g++ :
g++ Source/Main.cpp -o CoreKit.elf -std=c++2a -Wall -ILibrary -pthread -lssl -lcrypto
Checked items are implemented completly at the moment and unchecked items are to be implemented or completed.
-
Test : Simple test and log functions
-
Dynamic Lib : Dynamic Library facilities
-
Duration
-
DateTime
-
File
-
Directory : Directory functionality including content list
-
Event : Linux Eventfd based event mechanism
-
Timer : Linux Timerfd based timer mechanism
-
Coroutine : Linux implementation of a stackful asymmetric coroutine
-
Machine : Linux implementation of a duff's device state machine coroutine
-
Foramt:
- Base64 : Base64 Encoding
- Hex : Hexadecimal String Encoding
- Serializer : Data serializer and deserializer for network data packing
- Stream : Data stream
-
Storage:
- Sqlite3 : Sqlite3 wrapper class
-
Iterable:
- Span : Generic array wrapper
- List : Generic list
- Queue : Generic FIFO Queue
- Map : Generic red black binary tree map
- Linked List
- Binary tree
- Poll : Poll io file descriptor watching mechanism
- ePoll : ePoll io file descriptor watching mechanism
-
Network:
-
DNS : Basic DNS lookup functionalities
-
Address : Internet IP v4 and v6 address
-
EndPoint : End-Point consisting of address, port and some version specific fields
-
Socket
-
Http:
- : Request
- : Response
- : Server
- : Controller
-
DHT : Distributed Hash Table runners and tools
- Cache : Peer cache policy
- Handler : Request to Function Mapper for handling incomming new or pending requests
- Key : N-Byte key (id)
- Node
- Server : UDP Server
- Runner : A DHT node runner
-
-
Cryptography:
- Random : Cryptographicly secure random number generation and tools
- Digest : Digest functions like SHA , MD
- RSA
- AES
-
Format
- Optmize bit-copy-able objects Add and Take
-
Iterable:
- Add Linked-List
- Add Map
- Add (red-black & AVL) binary search trees
-
Cryptography:
- Add SHA3
- Move States to heap to protect user against leaks
- RSA Error handling
-
Http:
- Add Controller
-
DHT:
- Task queue between Runner and Server-Handler
- Server connections limit