A general purpose extension library for the C++17 stdlib
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Daniel Kolesa 89e9b8726f libostd: switch to bsd-2-clause 2 months ago
data update unicode data to 11.0 2 years ago
doc include all examples in generated docs 3 years ago
examples meson: do not set global cxxflags 1 year ago
ostd fix some dumb gcc warnings 1 year ago
src coroutines: import riscv64 assembly 1 year ago
tests rename generated tests executables to prevent conflict 1 year ago
.gitignore implement all the unicode ctype funcs, generate the tables 2 years ago
COPYING.md libostd: switch to bsd-2-clause 2 months ago
README.md build: add meson as the new buildsystem for libostd 1 year ago
gen_unicode.cc build: add meson as the new buildsystem for libostd 1 year ago
meson.build meson: pkg-config file generation 1 year ago
meson_options.txt build: add meson as the new buildsystem for libostd 1 year ago



Work in progress, not ready for production use.

Libostd is an extension of the C++17 standard library which mainly provides ranges (to replace iterators) but also various other utilities like proper streams, string formatting, coroutines, concurrency utilities and others. It’s meant to replace the more poorly designed parts of the C++ standard library to make the language easier and more convenient to use.

It is not feature complete right now, as most things are still being worked on.

Documentation for libostd can be found at https://docs.octaforge.org/libostd. Please refer to it for further information (the main page should be answer some more of your questions). You can also read doc/main_page.md and other files in there directly if you don’t need the API documentation.


Libostd is built using Meson. Therefore, you need to install Meson and then you can compile it as usual. Typically, this will be something like

mkdir build && cd build
meson ..
ninja all

This will typically build using either GCC or Clang with the default standard library. Keep in mind that it is you need at least Clang 4.0 or GCC 7.1 to build.