crubit VS abseil-cpp

Compare crubit vs abseil-cpp and see what are their differences.

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
crubit abseil-cpp
13 54
556 13,955
4.9% 1.3%
9.8 9.5
3 days ago 6 days ago
C++ C++
GNU General Public License v3.0 or later Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

crubit

Posts with mentions or reviews of crubit. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-06-23.
  • Making C++ Safe Without Borrow Checking, Reference Counting, or Tracing GC
    6 projects | news.ycombinator.com | 23 Jun 2023
    See also:

    Thomas Neumann's current proposal for memory safe C++ using dependency tracking:

    - https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p27...

    Google's proposal for memory safety using Rust-like lifetime analysis:

    - https://discourse.llvm.org/t/rfc-lifetime-annotations-for-c/...

    - https://github.com/google/crubit/tree/main/lifetime_analysis

  • Will Carbon Replace C++?
    14 projects | news.ycombinator.com | 27 Feb 2023
  • Supporting the Use of Rust in the Chromium Project
    11 projects | /r/rust | 13 Jan 2023
    For the people who are curious: crubit is an attempt to develop the way to seamlessly integrate C++ and Rust.
  • Crubit: C++/Rust Bidirectional Interop Tool
    4 projects | /r/rust | 6 Oct 2022
    Please see the experimentation and proposals at https://github.com/google/crubit/blob/main/docs/lifetime_annotations_cpp.md and https://github.com/google/crubit/blob/main/docs/lifetimes_static_analysis.md
    1 project | news.ycombinator.com | 19 Jul 2022
  • The Unicode Consortium announces ICU4X 1.0, its new high-performance internationalization library. It's written in Rust, with official C++ and JavaScript wrappers available.
    9 projects | /r/programming | 30 Sep 2022
    autocxx is good, though crubit is aiming for direct bidirectional interop
  • Programming languages endorsed for server-side use at Meta
    14 projects | news.ycombinator.com | 27 Jul 2022
    The areas you mentioned (CLI, web services, low level systems programming) are not mutually exclusive. Doing a good job on one doesn't mean something else is affected.

    The folks who worked on the most popular command line argument parser (https://docs.rs/clap/latest/clap/#example) made a positive contribution that didn't detract from any other use case.

    Similarly, the folks working on improving Rust for web services will also make it better for systems programming. In a blog post published today (https://blog.rust-lang.org/inside-rust/2022/07/27/keyword-ge...), they discuss keyword generics, a feature that will be equally helpful for `async` code and `const` functions evaluated at compile time.

    There is already some interoperability with C++ (http://cxx.rs) and ongoing research into automating this interoperability (https://github.com/google/autocxx, https://github.com/google/crubit). Feels like there's enough effort

  • Carbon Language: An experimental successor to C++
    11 projects | /r/rust | 19 Jul 2022
    This language was started by folks at Google. (Although it's interesting that they're publishing it under a separate github org, which suggests ambitions beyond Google's needs.) Google has a huge, performance-sensitive C++ codebase. At Google, major product teams' backends are typically written in C++, as well as common infrastructure like D (disk server), Colossus (distributed filesystem), Spanner (distributed SQL database), and Borg (cluster management). More than a few people would love for it all to be be written in Rust instead, but migration would be challenging, to say the least. I'm told people are looking into it—see Crubit for example. But AFAIK, no one's decided yet whether Google will stay with C++ for all these things, migrate some to Rust, migrate some to Carbon, and/or do something else entirely.
    22 projects | news.ycombinator.com | 19 Jul 2022
    It's currently unclear if Rust can interop with C++ with high fidelity. For example https://docs.rs/moveit/latest/moveit/ and https://github.com/google/crubit/blob/main/rs_bindings_from_... provide functionality to use non-trivially relocatable C++ types from Rust.

abseil-cpp

Posts with mentions or reviews of abseil-cpp. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-01-27.
  • Sane C++ Libraries
    7 projects | news.ycombinator.com | 27 Jan 2024
  • Open source collection of Google's C++ libraries
    1 project | news.ycombinator.com | 5 Jan 2024
  • Is Ada safer than Rust?
    2 projects | news.ycombinator.com | 2 Dec 2023
  • Appending to an std:string character-by-character: how does the capacity grow?
    2 projects | news.ycombinator.com | 26 Oct 2023
    Yeah, it's nice! And Abseil does it, IFF you use LLVM libc++.

    https://github.com/abseil/abseil-cpp/blob/master/absl/string...

    The standard adopted it as resize_and_overwrite. Which I think is a little clunky.

  • Shaving 40% Off Google’s B-Tree Implementation with Go Generics
    3 projects | news.ycombinator.com | 19 Sep 2023
    This may be confusing to those familiar with Google's libraries. The baseline is the Go BTree, which I personally never heard of until just now, not the C++ absl::btree_set. The benchmarks aren't directly comparable, but the C++ version also comes with good microbenchmark coverage.

    https://github.com/google/btree

    https://github.com/abseil/abseil-cpp/blob/master/absl/contai...

  • Faster Sorting Beyond DeepMind’s AlphaDev
    1 project | news.ycombinator.com | 19 Sep 2023
  • “Once” one-time concurrent initialization with an integer
    2 projects | news.ycombinator.com | 1 Aug 2023
    An implementation of call_once that accommodates callbacks that throw: https://github.com/abseil/abseil-cpp/blob/master/absl/base/c...
  • [R] AlphaDev discovers faster sorting algorithms
    2 projects | /r/MachineLearning | 7 Jun 2023
    I wouldn't say it's that cryptic. It's just a few bitwise rotations/shifts/xor operations.
  • Deepmind Alphadev: Faster sorting algorithms discovered using deep RL
    3 projects | news.ycombinator.com | 7 Jun 2023
    You can see hashing optimizations as well https://www.deepmind.com/blog/alphadev-discovers-faster-sort..., https://github.com/abseil/abseil-cpp/commit/74eee2aff683cc7d...

    I was one of the members who reviewed expertly what has been done both in sorting and hashing. Overall it's more about assembly, finding missed compiler optimizations and balancing between correctness and distribution (in hashing in particular).

    It was not revolutionary in a sense it hasn't found completely new approaches but converged to something incomprehensible for humans but relatively good for performance which proves the point that optimal programs are very inhuman.

    Note that for instructions in sorting, removing them does not always lead to better performance, for example, instructions can run in parallel and the effect can be less profound. Benchmarks can lie and compiler could do something differently when recompiling the sort3 function which was changed. There was some evidence that the effect can come from the other side.

    For hashing it was even funnier, very small strings up to 64 bit already used 3 instructions like add some constant -> multiply 64x64 -> xor upper/lower. For bigger ones the question becomes more complicated, that's why 9-16 was a better spot and it simplified from 2 multiplications to just one and a rotation. Distribution on real workloads was good, it almost passed smhasher and we decided it was good enough to try out in prod. We did not rollback as you can see from abseil :)

    But even given all that, it was fascinating to watch how this system was searching and was able to find particular programs can be further simplified. Kudos to everyone involved, it's a great incremental change that can bring more results in the future.

  • Backward compatible implementations of newer standards constructs?
    5 projects | /r/cpp_questions | 24 May 2023
    Check out https://abseil.io. It offers absl::optional, which is a backport of std::optional.

What are some alternatives?

When comparing crubit and abseil-cpp you can also consider the following projects:

carbon-lang - Carbon Language's main repository: documents, design, implementation, and related tools. (NOTE: Carbon Language is experimental; see README)

Folly - An open-source C++ library developed and used at Facebook.

DIPs - D Improvement Proposals

Boost - Super-project for modularized Boost

verdigris - Qt without moc: set of macros to use Qt without needing moc

spdlog - Fast C++ logging library.

go-sumtype - A simple utility for running exhaustiveness checks on Go "sum types."

Qt - Qt Base (Core, Gui, Widgets, Network, ...)

go-server-core - An attempt to build a plugin based server

EASTL - Obsolete repo, please go to: https://github.com/electronicarts/EASTL

autocxx - Tool for safe ergonomic Rust/C++ interop driven from existing C++ headers

BDE - Basic Development Environment - a set of foundational C++ libraries used at Bloomberg.