GitHub Trends
10.1K subscribers
15.3K links
See what the GitHub community is most excited about today.

A bot automatically fetches new repositories from https://github.com/trending and sends them to the channel.

Author and maintainer: https://github.com/katursis
Download Telegram
#cplusplus #bson #cbor #header_only #json #json_diff #json_merge_patch #json_parser #json_patch #json_pointer #json_serialization #messagepack #msgpack #rfc_6901 #rfc_6902 #rfc_7049 #rfc_7159 #rfc_8259 #stl_containers #ubjson

This library, called "JSON for Modern C++," provides a simple and intuitive way to work with JSON data in C++ programs. Here are the key benefits and features The library uses modern C++ features to make working with JSON feel natural, similar to how JSON is handled in languages like Python.
- **Trivial Integration** The library is heavily unit-tested, covering 100% of the code, including exceptional behavior, and uses tools like Valgrind and Clang Sanitizers to ensure no memory leaks.

### Key Features

- **STL-like Access** You can convert various STL containers (like `std: Support for JSON Pointer and JSON Patch (RFC 6901 and RFC 6902) for addressing and modifying parts of a JSON document.
- **Binary Formats** You can serialize and deserialize custom types using simple macros or functions.
- **Error Handling** Simple and intuitive API makes it easy to read, write, and manipulate JSON data.
- **Highly Tested** Supports various data formats and custom types, making it versatile for different use cases.
- **Efficient**: Optimized for performance, especially with binary formats.

Overall, this library simplifies working with JSON in C++ while providing robust features and reliable performance.

https://github.com/nlohmann/json
1
#cplusplus #argument_parser #cpp17 #cross_platform #header_only #library #mit_license

This tool, called `argparse`, helps you easily handle command-line arguments in your C++ programs. Here’s how it benefits you You just need to include a single header file `argparse.hpp` and create an `ArgumentParser` object to start parsing command-line arguments.
- **Flexible Argument Types** You can add arguments with specific behaviors (e.g., required, default values, flags) using methods like `add_argument`, `default_value`, and `implicit_value`.
- **Help Messages** You can create subcommands and share arguments between parsers, similar to how tools like `git` work.
- **Customization**: You can customize prefix characters, assignment characters, and even format the usage output to suit your needs.

Overall, `argparse` simplifies the process of handling command-line arguments, making your program more user-friendly and flexible.

https://github.com/p-ranav/argparse
#cplusplus #api #beve #binary #cplusplus #cpp #csv #fast #header_only #interface #json #json_rpc2 #json_schema #reflection #serialization

Glaze is a very fast JSON library that reads and writes data directly from object memory, making it highly performant. Here are the key benefits Glaze is one of the fastest JSON libraries, outperforming many others in benchmarks.
- **Ease of Use** Glaze supports various formats like JSON, CSV, and BEVE (binary efficient versatile encoding), and it allows custom read/write functions and wrappers.
- **Error Handling** Glaze is compatible with multiple compilers (Clang, MSVC, GCC) and supports both 64-bit and 32-bit systems.
- **Advanced Features**: It includes support for JSON-RPC 2.0, JSON Schema generation, and more advanced features like thread pooling and time trace profiling.

Overall, Glaze offers high performance, ease of use, and a wide range of features, making it a powerful tool for handling JSON and other data formats.

https://github.com/stephenberry/glaze
#cplusplus #cpp #cpp11 #header_only #logging #spdlog

spdlog is a fast and feature-rich C++ logging library. It supports various platforms like Linux, Windows, macOS, and Android. You can install it using package managers or by cloning the repository and building it yourself. The library offers several benefits It is very fast, as shown in benchmarks.
- **Flexibility** It supports rich formatting using the fmt library.
- **Asynchronous Logging** Allows custom formatting, log targets (like rotating files, daily logs, console logging), and user-defined callbacks.
- **Multi-Threading** Log levels can be adjusted at runtime or compile time.
- **Backtrace Support**: Stores debug messages in a ring buffer for later display.

Overall, spdlog provides a powerful and customizable logging solution that can be easily integrated into your C++ projects.

https://github.com/gabime/spdlog