Using Go to manage our packages and dependencies and generating Visual Studio projects as well as Tundra build files. [Done]
Use clang-format -i -style=file **/*.cpp
to automatically format all C++ files in a project.
- package starts with c (e.g. cbase, ccore, cstring, callocator, chash, crandom, cfilesystem) [Done]
- namespaces start with n (e.g. ncore, nrunes) [Done]
- struct/class ends with _t (e.g. alloc_t) [Done]
- global functions start with g_ (e.g. g_min, g_max, g_po2) [Done]
- static functions start with s_ (e.g. s_min, s_max, s_po2) [Done]
string class (UCS-2, UTF-16)
The package csuperalloc contains a virtual memory allocator.
- split of debugging allocators like memento to cdealloc
Do we still need these lock free data structures ?
Just a simple interface here and a couple of hash candidates. This is just hashing, no encryption.
Utilities to construct, update and use merkle trees.
AES-256
A couple of random number generators
- mersenne twister
- and ?
Package for dealing with date and time
We need to redesign this a bit by limiting the feature set, design can consider multithreading but should by default be single-threaded.
- filesystem_t
- fileinfo_t, dirinfo_t
- filepath_t, dirpath_t
Progress = Alpha
- Leak Detector
- Use the allocator to allocate meta-data
- Memento
- thread
- mutex, event, semaphore
- per thread a context holding (this is part of cbase)
- random number generator
- string allocator
- heap allocator
- peer to peer library
- connections are peer objects
- 1st version = TCP
- later we can look at UDP; like uTP or UDX
Progress = Alpha
- simple actor framework
- slim/optimized
- maximum number of actors
- actors manage the messages they send and will get them send back as GC
- just sending messages
Very usable.
Does contain a working 'manual' parser class.
- parsing/tokenizer
- XML
- JSON
- Custom
Localization to support many languages easily in an app.
- localization
- string compression
that's it... (for now)