Skip to content

ishiko-cpp/project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

100 Commits
 
 
 
 

Repository files navigation

Ishiko/C++ Project Documentation

Ishiko/C++ is a set of C++ libraries.

This repository contains the project documentation.

Contents

Ishiko/C++ original projects

  1. BasePlatform: code to handle differences between operating systems.

    ishiko-cpp

  2. Collections: container classes.

    ishiko-cpp

  3. Color: color classes.

    ishiko-cpp

  4. Concurrency: Executors and thread pools.

    ishiko-cpp

  5. Configuration: configuration classes.

    ishiko-cpp

  6. Crypto: cryptographic functions.

    ishiko-cpp

  7. CSV: CSV utilities.

    ishiko-cpp

  8. DataStructures: data structures.

    ishiko-cpp

  9. Diff: diff utilities.

    ishiko-cpp

  10. Errors: code to handle and report errors.

    ishiko-cpp

  11. FileSystem: utilities to work with the file system.

    ishiko-cpp

  12. Hash: a library to calculate hashes.

    ishiko-cpp

  13. HTTP: a library that provides HTTP functionality.

    ishiko-cpp

  14. IO: I/O utilities.

    ishiko-cpp

  15. JSON: JSON utilities.

    ishiko-cpp

  16. Logging: logging utilities.

    ishiko-cpp

  17. Math: Mathematical functions.

    ishiko-cpp

  18. Memory: Allocators and memory buffers.

    ishiko-cpp

  19. Metrics: utilities to collect metrics.

    ishiko-cpp

  20. Networking: networking.

    ishiko-cpp

  21. PDF: code to work with PDF documents.

    ishiko-cpp

  22. Process: code to work with processes and environment variables.

    ishiko-cpp

  23. REST: REST utilities.

    ishiko-cpp

  24. Synchronization: synchronization mechanisms.

    ishiko-cpp

  25. Terminal: utilities to work with terminal input and output.

    ishiko-cpp

  26. TestFramework: a C++ test framework.

    ishiko-cpp

  27. Text: utilities to work with text data.

    ishiko-cpp

  28. Time: basic classes to represent time.

    ishiko-cpp

  29. Types: fundamental types.

    ishiko-cpp

  30. UUIDs: UUID types.

    ishiko-cpp

  31. Workflows: a framework to schedule and execute tasks.

    ishiko-cpp

  32. XML: XML utilities.

    ishiko-cpp

  33. YAML: YAML utilities.

    ishiko-cpp

Third-party dependencies/forks

  • Botan: Botan is a C++ cryptography library.
  • fmt: {fmt} is an open-source formatting library providing a fast and safe alternative to C stdio and C++ iostreams.
  • mstch: mstch is a complete implementation of {{mustache}} templates using modern C++.
  • pugixml: Light-weight, simple and fast XML parser for C++ with XPath support

Installation

Third-party dependencies

First the third-party dependencies need to be installed. These are available in the ishiko-third-party organization except for Boost which you get from the boost.org website. There are no dependencies between them so the build order doesn't matter but we define the following order for consistency.

  1. Boost
  2. fmt
  3. Botan
  4. pugixml
  5. mstch

Installing Boost

Download the archive from the boost.org website. The instructions below are for Windows but they translate directly to bash.

C:\>set ISHIKO_WORKSPACE=<workspace_root_dir>
C:\>set ISHIKO_INSTALL_DIR=%ISHIKO_WORKSPACE%\Installation
C:\>set ISHIKO_PROJECTS_DIR=%ISHIKO_WORKSPACE%\Projects

C:\>cd /d %ISHIKO_PROJECTS_DIR%\boostorg\boost_1_90_0
C:\>.\bootstrap.bat
C:\>.\b2 install --prefix=%ISHIKO_INSTALL_DIR%

Installing fmt

mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=.. ..
cmake --build . --config=Debug
cmake --build . --config=Release
cmake --install . --config=Debug
cmake --install . --config=Release

This installs the libraries in the lib folder at the root of the repo. The last step is to rename the files to adopt the Boost naming convention: fmt-d-x64.lib.

Installing Botan

On Windows:

git checkout 2.19.5-fix
python ./configure.py --cc=msvc --os=windows --disable-shared-library --debug-mode --prefix=..\..\..\..\..\Installation

Then open a Visual Studio build shell and run:

nmake
nmake check
nmake install

Installing the Ishiko/C++ libraries

The following build order can be used to build the projects from scratch:

  1. BasePlatform (without the test code)
  2. Errors (without the test code)
  3. Memory (without the test code)
  4. Logging (without the test code)
  5. Types (without the test code)
  6. Hash (without the test code)
  7. Synchronization (without the test code)
  8. DataStructures (without the test code)
  9. Collections (without the test code)
  10. Text (without the test code)
  11. Time (without the test code)
  12. Concurrency (without the test code)
  13. Process (without the test code)
  14. IO (without the test code)
  15. FileSystem (without the test code)
  16. XML (without the test code)
  17. JSON (without the test code)
  18. YAML (without the test code)
  19. Diff (without the test code)
  20. Configuration (without the test code)
  21. TestFramework/Core
  22. BasePlatform (now with the test code)
  23. Errors (now with the test code)
  24. Memory (now with the test code)
  25. Logging (now with the test code)
  26. Types (now with the test code)
  27. Hash (now with the test code)
  28. Synchronization (now with the test code)
  29. DataStructures (now with the test code)
  30. Collections (now with the test code)
  31. Text (now with the test code)
  32. Time (now with the test code)
  33. Concurrency (now with the test code)
  34. Process (now with the test code)
  35. IO (now with the test code)
  36. FileSystem (now with the test code)
  37. XML (now with the test code)
  38. JSON (now with the test code)
  39. YAML (now with the test code)
  40. Diff (now with the test code)
  41. Configuration (now with the test code)
  42. TestFramework
  43. Math
  44. Crypto
  45. Color
  46. Terminal
  47. Workflows
  48. UUIDs
  49. Networking
  50. HTTP
  51. REST
  52. CSV
  53. PDF

Usage

Support

None.

License

Copyright (c) 2005-2026 Xavier Leclercq
This work is licensed under the Boost Software License 1.0
See https://github.com/ishiko-cpp/project/blob/main/LICENSE.txt

About

C++ libraries

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published