Skip to content

ishiko-cpp/project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

95 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. Concurrency: Executors and thread pools.

    ishiko-cpp

  4. Configuration: configuration classes.

    ishiko-cpp

  5. Crypto: cryptographic functions.

    ishiko-cpp

  6. CSV: CSV utilities.

    ishiko-cpp

  7. DataStructures: data structures.

    ishiko-cpp

  8. Diff: diff utilities.

    ishiko-cpp

  9. Errors: code to handle and report errors.

    ishiko-cpp

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

    ishiko-cpp

  11. Hash: a library to calculate hashes.

    ishiko-cpp

  12. HTTP: a library that provides HTTP functionality.

    ishiko-cpp

  13. IO: I/O utilities.

    ishiko-cpp

  14. JSON: JSON utilities.

    ishiko-cpp

  15. Logging: logging utilities.

    ishiko-cpp

  16. Memory: Allocators and memory buffers.

    ishiko-cpp

  17. Metrics: utilities to collect metrics.

    ishiko-cpp

  18. Networking: networking.

    ishiko-cpp

  19. PDF: code to work with PDF documents.

    ishiko-cpp

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

    ishiko-cpp

  21. REST: REST utilities.

    ishiko-cpp

  22. Synchronization: synchronization mechanisms.

    ishiko-cpp

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

    ishiko-cpp

  24. TestFramework: a C++ test framework.

    ishiko-cpp

  25. Text: utilities to work with text data.

    ishiko-cpp

  26. Time: basic classes to represent time.

    ishiko-cpp

  27. Types: fundamental types.

    ishiko-cpp

  28. UUIDs: UUID types.

    ishiko-cpp

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

    ishiko-cpp

  30. XML: XML utilities.

    ishiko-cpp

  31. 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. There are no dependencies between them so the build order doesn't matter but we define the following order for consistency.

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

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.1
python ./configure.py --cc=msvc --os=windows --disable-shared-library --debug-mode

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. Crypto
  44. Terminal
  45. Workflows
  46. UUIDs
  47. Networking
  48. HTTP
  49. REST
  50. CSV
  51. PDF

Usage

Support

None.

License

Copyright (c) 2005-2024 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