draft VS mirage

Compare draft vs mirage and see what are their differences.

mirage

MirageOS is a library operating system that constructs unikernels (by mirage)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
draft mirage
24 32
5,523 2,425
1.0% 0.9%
9.6 8.7
1 day ago 14 days ago
TeX OCaml
- ISC 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.

draft

Posts with mentions or reviews of draft. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-07-11.
  • C++23: The Next C++ Standard
    8 projects | news.ycombinator.com | 11 Jul 2023
    I should have said the "latest standard", not "spec", if we're being technical. But EVERY bit of official material is very clear about asserting that C++23 is still a preview/in-progress, not a standard. Saying otherwise is, strictly speaking, incorrect.

    https://isocpp.org/std/the-standard

    https://www.iso.org/standard/79358.html

    https://github.com/cplusplus/draft/blob/main/papers/n4951.md

  • Never trust a programmer who says they know C++
    2 projects | news.ycombinator.com | 5 Jun 2023
    [3] https://github.com/cplusplus/draft/releases/tag/n4917

    *This is a joke, but only barely so.

  • How to become a C++ Chad ?
    2 projects | /r/cpp | 3 Jun 2023
    pdf
  • Why is the token "designator brace-or-equal-initializer" not defined in the C++ 20 standard document?
    1 project | /r/cpp | 17 Mar 2023
    I'm currently going through Annex A of C++20, but I can't find the definition of "designator brace-or-equal-initializer", and couldn't find much formal information on it in an obvious way. The newest source on [decl] (https://github.com/cplusplus/draft/blob/main/source/declarations.tex) also doesn't seem to have it. Am I missing anything, or is this a missing definition in the standard grammar?
  • Can sanitizers find the two bugs I wrote in C++?
    11 projects | news.ycombinator.com | 8 Feb 2023
    > I don't have a copy of the standard at hand, can anyone quote the relevant section?

    The C++ (draft) standard is on GitHub! [0] Compiling it needs Perl and some LaTeX packages, but is reasonably straightforwards otherwise. In addition, links to specific draft standards can be found on cppreference [1].

    But anyways, in the first C++20 post-publication draft (N4868), the wording you're interested in is in multiple sections. Section 22.2.3 Sequence Containers [sequence.reqmts] has Table 78: Optional sequence container operations [tab:container.seq.opt] (starting on page 815), which states that a precondition of pop_back() is that empty() returns false. Section 16.3.2.4 Detailed Specifications [structure.specifications] (page 481) states:

    > Preconditions: the conditions that the function assumes to hold whenever it is called; violation of any preconditions results in undefined behavior.

    Therefore, calling pop_back() on an empty vector results in undefined behavior.

    > Is this something that in practice is implemented in different (exception-throwing) ways?

    Based on a quick glance at the major implementations (libc++ 15.0.7 at [2], MSVC at [3], libstdc++ at [4]), it looks like asserts are used. Whether those result in exceptions probably depends on whether the asserts are compiled in in the first place and how they are implemented, but it's definitely not a guaranteed exception.

    [0]: https://github.com/cplusplus/draft

    [1]: https://en.cppreference.com/w/cpp/links

    [2]: https://github.com/llvm/llvm-project/blob/llvmorg-15.0.7/lib...

    [3]: https://github.com/llvm/llvm-project/blob/8dfdcc7b7bf66834a7...

    [4]: https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=libstdc%2B%2B-v3...

  • How does Rust handle bounds checks that are incorrect in C/C++ due to signed integer conversion?
    1 project | /r/rust | 19 Dec 2022
    Which standard specifically are you quoting there? I checked an old and a new C++ draft in https://github.com/cplusplus/draft/tree/main/papers, and in neither one did 6.3 have anything like that.
  • Rust and C++
    3 projects | /r/programming | 14 Nov 2022
    https://github.com/cplusplus/draft/releases/download/n4917/n4917.pdf (page 1, chapter 1 scope):
  • WG21, aka C++ Standard Committee, October 2022 Mailing
    1 project | /r/cpp | 19 Oct 2022
    PRs for C++ are at https://github.com/cplusplus/draft But the discussion for a PR is via https://isocpp.org/std/submit-a-proposal
  • My programming language history
    10 projects | dev.to | 26 Aug 2022
    C/C++
  • How to overload function parameter to accept either raw pointer or c-array
    1 project | /r/cpp_questions | 14 Aug 2022
    By the way, https://github.com/cplusplus/draft/releases/tag/n4910 , says

mirage

Posts with mentions or reviews of mirage. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-18.

What are some alternatives?

When comparing draft and mirage you can also consider the following projects:

team - Rust teams structure

unikraft - A next-generation cloud native kernel designed to unlock best-in-class performance, security primitives and efficiency savings.

LLVMSharp - LLVM bindings for .NET Standard written in C# using ClangSharp

oberon-riscv - Oberon RISC-V port, based on Samuel Falvo's RISC-V compiler and Peter de Wachter's Project Norebo. Part of an academic project to evaluate Project Oberon on RISC-V.

papers

Carp - A statically typed lisp, without a GC, for real-time applications.

Asciidoctor - :gem: A fast, open source text processor and publishing toolchain, written in Ruby, for converting AsciiDoc content to HTML 5, DocBook 5, and other formats.

linuxkit - A toolkit for building secure, portable and lean operating systems for containers

libhal - A collection of interfaces and abstractions for embedded peripherals and devices using modern C++

Mezzano - An operating system written in Common Lisp

cppwp - HTML version of the current C++ working paper

Lupine-Linux - Linux in Unikernel Clothing