crubit VS verona

Compare crubit vs verona 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 verona
13 20
556 3,550
4.9% 0.3%
9.8 6.6
3 days ago 10 days ago
C++ C++
GNU General Public License v3.0 or later MIT License
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.

verona

Posts with mentions or reviews of verona. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-10-11.
  • Snmalloc: A Message Passing Allocator
    5 projects | news.ycombinator.com | 11 Oct 2023
    According to this FAQ, snmalloc was designed for the Verona language:

    https://microsoft.github.io/verona/faq.html

    Unfortunately, I cannot find any significant code samples for Verona on the website or in the GitHub repo. There are a few types defined in a pretty low-level way:

    https://github.com/microsoft/verona/tree/master/std/builtin

  • Microsoft Project Verona, a research programming language
    1 project | news.ycombinator.com | 17 Sep 2023
  • Making C++ Safe Without Borrow Checking, Reference Counting, or Tracing GC
    6 projects | news.ycombinator.com | 23 Jun 2023
    I think the future lies in figuring out how to get the benefits of that secret sauce, while mitigating or avoiding the downsides.

    Like Boats said, the borrow checker works really well with data, but not so well with resources. I'd also add that it works well with data transformation, but struggles with abstraction, both the good and bad kind. It works well with tree-shaped data, but struggles with programs where the data has more intra-relationships.

    So if we can design some paradigms that can harness Rust's borrow checker's benefits without its drawbacks, that could be pretty stellar. Some promising directions off the top of my head:

    * Vale-style "region borrowing" [0] layered on top of a more flexible mutably-aliasing model, either involving single-threaded RC (like in Nim) generational references (like in Vale).

    * Forty2 [1] or Verona [2] isolation, which let us choose between arenas and GC for isolated subgraphs. Combining that with some annotations could be a real home run. I think Cone [3] was going in this direction for a while.

    * Val's simplified borrowing (mutable value semantics) combined with some form of mutable aliasing (this might sound familiar).

    [0] https://verdagon.dev/blog/zero-cost-borrowing-regions-part-1... (am author)

    [1] http://forty2.is/

    [2] https://github.com/microsoft/verona

    [3] https://cone.jondgoodwin.com/

  • A Flexible Type System for Fearless Concurrency
    1 project | news.ycombinator.com | 13 May 2023
    Their approach lines up pretty well with how we do regions in Vale. [0]

    Specifically, we consider the "spine" of a linked list to be in a separate "region" than the elements. This lets us freeze the spine, while keeping the elements mutable.

    This mechanism is particularly promising because it likely means one can iterate over a collection with zero run-time overhead, without the normal restrictions of a more traditional Rust/Cyclone-like borrow checker. We'll know for sure when we finish part 3 (one-way isolation [1]); part 1 landed in the experimental branch only a few weeks ago.

    The main difference between Vale and the paper's approach is that Vale doesn't assume that all elements are self-isolated fields, Vale allows references between elements and even references to the outside world. However, this does mean that Vale sometimes needs "region annotations", whereas the paper's system doesn't need any annotations at all, and that's a real strength of their method.

    Other languages are experimenting with regions too, such as Forty2 [2] and Verona [3] though they're leaning more towards a garbage-collection-based approach.

    Pretty exciting time for languages!

    [0] https://verdagon.dev/blog/zero-cost-borrowing-regions-overvi...

    [1] https://verdagon.dev/blog/zero-cost-borrowing-regions-part-3...

    [2] http://forty2.is/

    [3] https://github.com/microsoft/verona

  • Microsoft is rewriting core Windows libraries in Rust
    1 project | /r/rust | 29 Apr 2023
  • Microsoft is to enable Rust use for Windows 11 kernel
    4 projects | /r/rust | 28 Apr 2023
    Does this count? https://microsoft.github.io/verona/
  • Microsoft rewriting core Windows libraries in Rust
    6 projects | /r/rust | 25 Apr 2023
    What about new Rust that "Microsoft Research" trying to "explore" https://github.com/microsoft/verona/blob/master/docs/explore.md ?
  • Concurrent ownership in Verona
    1 project | /r/rust | 13 Dec 2022
  • Concurrent Ownership in Verona
    1 project | news.ycombinator.com | 13 Dec 2022
  • Pony Programming Language
    3 projects | news.ycombinator.com | 13 Dec 2022
    Fun fact: the person who created Pony, Sylvan Clebsch, has been working on a Microsoft Research project called Verona. From it's README [0]:

    > Project Verona is a research programming language to explore the concept of concurrent ownership. We are providing a new concurrency model that seamlessly integrates ownership.

    https://github.com/microsoft/verona/tree/master

What are some alternatives?

When comparing crubit and verona 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)

tour_of_rust - A tour of rust's language features

DIPs - D Improvement Proposals

PurefunctionPipelineDataflow - My Blog: The Math-based Grand Unified Programming Theory: The Pure Function Pipeline Data Flow with principle-based Warehouse/Workshop Model

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

dolt - Dolt – Git for Data

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

ante - A safe, easy systems language

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

cone - Cone Programming Language

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

felix - The Felix Programming Language