Hi, I am Balázs and this is a repository for some of my libraries!
There are numerous projects that I am woking on parallel, such as cryptography, intrinsics and other utilities. My aim is for my projects to be absolutely perfect without any warnings, bugs or missing features. It is also my intention to write meaningful comments and documentation to make every bit of my code clear and understandable for everyone, but these might only come in later commits...
Any kind of contribution is welcome! AMA, I am more than happy to answer!
Project | Description |
---|---|
Iterator | Basic iterator template. (The standard iterator was declared deprecated in C++17 |
Matrix | Advanced matrix class with every essential operation and function. |
Vector | Advanced mathematical vector class (not standard vector ) with every essential operation and function. |
Transform | Transformations using vectors and matrices. |
Intrinsics | AVX, SSE and other intrinsic function wrappers. |
Base Transcoder | Base transcoder template. (Currently only working with powers of 2) |
MD5, RIPEMD160, SHA1/2/3 | Cryptographic hash function implementations. |
HMAC | HMAC template implementation. |
AES | AES implementation with different modes of operation. |
Byte Concatenation | Endian-specific integer concatenation algorithms. |
Byte Swap | Integer byte swap algorithm. |
Endian | Endian-specific memory read/write algorithms. |
Rotate | Bitwise left/right rotate algorithms. |
My projects are organized in different namespaces. The main namespace is rb
(my monogram).
Different projects may share a namespace if their subjects are similar.
Namespace | Projects |
---|---|
iter |
Iterator |
math |
Matrix, Vector, Transform |
intrin |
Intrinsics |
crypto |
Base Transcoder, MD5, RIPEMD160, SHA1, SHA2, SHA3/Keccak, HMAC, AES |
bit |
Byte Concatenation, Byte Swap, Endian, Rotate |
I also define literals in the literals
namespace.
I use Premake, a project generator tool to help you set up the workspace for your system and IDE. You can download Premake 5.0 here!
- Place premake software into the premake folder where its license is located. (
..\RBLibs\premake\
) - Open command prompt/terminal.
- Navigate to the repository. (
..\RBLibs\
) - Run premake and choose your build action. (On windows, using Visual Studio 2019:
.\premake\premake.exe vs2019
) - Your project should be ready to use in the
build
folder!
See the Premake User Guide for more help!
No dependencies yet!
- I use Microsoft Unit Test Framework for testing.
- Some intrinsic headers or functions may not be available on all machines.
- Any other stuff that I did not think of...