/riku

Standard C++ library for cross-platform, high-performance software

Primary LanguageC++The UnlicenseUnlicense

Riku Build Status License: Unlicense

Standard runtime and library for C++.

Build

  1. Pregenerated projects in build/projects/*
  2. Require GENie to generate your target project.
  3. genie [--platform=<platform>] <target> to generate project

Features and targets

Main purpose of this library for using as a standard library, replacement for C/C++ standard library.

  1. Advise-safety, unlike Rust with strong and strict safety.
  2. Easy to use, with common effort and familiar NodeJS-based and libuv API.
  3. Multithreaded advise safety (not strong or strict safety)
  4. Performance is also final target, but safety and easy-to-use must be present first.
  5. Low-level and High-level is an yin-yang presentation of this library.
  6. No lack, no redundant, no unneccessary features. That mean this library is enough to be a strong foundation for all software and application.
  7. Base on above feature, this library must be cross-platform.
  8. GENie toolchain for generate multiple cross-platform projects with no hard way.
  9. VisualC's __declspec(property) for cross-platform, with -fdeclspec clang options

Modules

  • Core: primitive types, console, string, Date, memory, ...
  • JSON
  • Allocators: stack, linear and pool
  • Dynamic string
  • Dynamic buffer
  • Crypto: hashing, encrypt, decrypt, encode, decode
  • Thread, Mutex, Condition, Semaphore, Atomic, Fiber
  • OS functions
  • File system
  • Path: helpers for working with filesystem path
  • Net: sockets and streaming
  • Dylib (low level): dynamic library loading
  • Zlib: NodeJS's zlib
  • Stream: base of all streaming type
  • Func<>: fast delegate
  • EventEmitter<N,F>: raise an event and callback to listeners
  • List: high-level of Array
  • Array: POD continous container
  • HashTable: POD table with hashed key
  • Dictionary<K,V>: high-level of Table

Wishing modules

  1. ArgsParse: parsing command line argument, base on Python argparse
  2. WebSocket
  3. Value, ValuePool, StringPool
  4. Url: helpers for working with network URL
  5. Http/Https: NodeJS's http and https

License

  1. Author: MaiHD @ 2019
  2. Unlicense or public domain