Why should I have written ZeroMQ in C, not C++ (2012)

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • expected

    C++11/14/17 std::expected with functional-style extensions

  • Eventually you'll be able to use std::expected in C++23!

    https://en.cppreference.com/w/cpp/header/expected

    Don't throw exceptions, require the caller to handle errors and propagate them up the stack (everything returns an expected) if they cannot be handled. You are forced to model the error domains instead of just throwing an exception and assuming the caller knows to catch it and do something with it.

    Java has checked exceptions, but, Kotlin decided to abandon them.

    The nice codebases I have worked on stick to the Result type in Swift or Kotlin. And thus you are forced to 'translate' errors (exceptions?) as described in Alan Griffith's 'Exceptional Java'.

    https://accu.org/journals/overload/10/48/griffiths_406/

    "If a checked exception is thrown (to indicate an operation failure) by a method in one package it is not to be propagated by a calling method in a second package. Instead the exception is caught and "translated". Translation converts the exception into: an appropriate return status for the method, a checked exception appropriate to the calling package or an unchecked exception recognised by the system. (Translation to another exception type frequently involves "wrapping".)"

    If you can't wait for C++23, there's a single header implementation here.

    https://github.com/TartanLlama/expected

  • serenity

    The Serenity Operating System 🐞

  • SerenityOS uses this pattern heavily: https://github.com/SerenityOS/serenity/blob/master/AK/Try.h

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts