ComLightInterop VS Rocket

Compare ComLightInterop vs Rocket 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
ComLightInterop Rocket
8 156
44 23,440
- 0.9%
4.2 8.9
6 months ago 3 days ago
C# Rust
MIT License GNU General Public License v3.0 or later
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.

ComLightInterop

Posts with mentions or reviews of ComLightInterop. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-07-18.
  • Swig – Connect C/C++ programs with high-level programming languages
    5 projects | news.ycombinator.com | 18 Jul 2023
    I have once made something remotely similar, to interop between C++ and C#: https://github.com/Const-me/ComLightInterop

    I took different approach. Because I only needed to support these two languages, there’s no separate interface definition language, and no code generator for interfaces. Instead, users are expected to write both language projections manually.

    Then there’s a runtime code generator on the .NET side of the interop which builds runtime callable proxy types for interfaces implemented in C++, also virtual tables for C# objects consumed by C++.

  • C# 11 Preview Updates – Raw string literals, UTF-8 and more
    5 projects | news.ycombinator.com | 22 May 2022
    It’s pretty fast. Likely reason for that, MS designed both language and runtime this way since version 1.0. They needed that for their Windows Forms which consumes huge chunk of WinAPI.

    I benchmarked a while ago when testing this library https://github.com/Const-me/ComLightInterop#performance On the computer I was using at that time (probably Ryzen 5 3600 CPU) the overhead was 15-20 nanoseconds per call.

  • Mach v0.1 – cross-platform Zig graphics in ~60 seconds
    4 projects | news.ycombinator.com | 27 Mar 2022
    That thing is COM, which is a small subset of C++ ABI. Technically it’s about the same as on Windows, i.e. C ABI with extra first argument for this pointer.

    Once upon a time I made this library https://github.com/const-me/comlightInterop/ The native side of the interop is idiomatic C++, here’s an example https://github.com/Const-me/ComLightInterop/blob/master/Demo... The C# side of the interop is implemented through the built-in C interop, here’s the relevant part of the library https://github.com/Const-me/ComLightInterop/blob/master/ComL... I’ve tested Linux version of that library on AMD64, ARMv7, and ARM64 CPUs, but only with gcc compiler on the native side.

  • COM+ Revisited
    2 projects | news.ycombinator.com | 30 Jan 2022
    I like many parts of COM, but I believe that example mostly demonstrates bad parts, with IDL, registrations, and over-engineered support libraries.

    There's nothing wrong with exporting factory functions from DLLs. Microsoft does it all the time, APIs like Direct3D, DirectDraw and Media Foundation don't come with type libraries are they aren't registered anywhere.

    Speaking about support libraries, I once made my own: https://github.com/Const-me/ComLightInterop/tree/master/ComL... Compare examples from that article with this one: https://github.com/Const-me/ComLightInterop/blob/master/Demo... That source file is the complete DLL which implements a minimalistic COM object.

  • The Serde Rust Framework
    14 projects | news.ycombinator.com | 14 Oct 2021
    > Does it feel "brittle" to use

    Yes and no.

    No because when you try to do unsupported things like calling a method on an object which doesn’t support one, you gonna get an appropriate runtime exception.

    Yes because if you fail lower-level things like local parameter allocation, you gonna get an appropriate runtime exception but that one is (1) too late, I’d prefer such things to be detected when you emit the code, not when trying to use the generated code (2) Lacks the context.

    Overall, when I can I’m using that higher-level System.Linq.Expressions for runtime codegen. Things are much nicer at that level. I only using the low-level thing when I need to emit new types, like there: https://github.com/Const-me/ComLightInterop/blob/master/ComL...

  • Weird
    5 projects | news.ycombinator.com | 28 Aug 2021
  • Building a shared vision for Async Rust
    4 projects | news.ycombinator.com | 18 Mar 2021
    > Do you have any good resources on writing dlls to consume via .net like you’re talking about?

    For C APIs i.e. functions, structures and strings, the good resource is Microsoft documentation, the support is built-in, see “Consuming Unmanaged DLL Functions” section: https://docs.microsoft.com/en-us/dotnet/framework/interop/

    For COM APIs i.e. sharing objects around see this library + demos: https://github.com/Const-me/ComLightInterop It’s only really needed on Linux because the desktop version of the framework has COM support already built-in, but it can be used for cross-platform things just fine, I tested that quite well i.e. not just with these simple demos.

    > How do you deal with the managed memory when using the gc from .net

    Most of the time, automatically.

    When you calling C++ from C#, the runtime automatically pins arguments like strings or arrays. Pinning means until the C++ function returns, .NET GC won’t touch these things. This doesn’t normally make any copies: C++ will receive raw pointers/native references to the .NET objects.

    Sometimes you do want to retain C# objects from C++ or vice versa i.e. keep them alive after the function/method returns. An idiomatic solution for these use cases is COM interop. IUnknown interface (a base interface for the rest of COM interfaces) allows to retain/release things across languages.

  • Experimental Nintendo Switch Emulator written in C#
    8 projects | news.ycombinator.com | 13 Mar 2021
    C++ interop is not supported in modern .NET out of the box, but wasn't too hard to implement as a library: https://github.com/Const-me/ComLightInterop

Rocket

Posts with mentions or reviews of Rocket. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-19.
  • Sponsoring the Rust-based Rocket Web framework
    1 project | dev.to | 3 May 2024
    At the bottom of the Rocket web site there are a few sponsors listed Kindness.ai, ohne Makler, 1Password, Signal Insight, and Edwin Olback. There are more sponsors on GitHub sponsors page
  • Top 10 Rusty Repositories for you to start your Open Source Journey
    11 projects | dev.to | 19 Dec 2023
    4. Rocket
  • What is the best library to write a SCADA-like application for web?
    4 projects | /r/rust | 11 Dec 2023
    If you want something simpler/more minimal, you could use https://rocket.rs/ for the backend and handle the front-end however you want.
  • Rocket – Simple, Fast, Type-Safe Web Framework for Rust
    1 project | /r/patient_hackernews | 24 Nov 2023
    1 project | /r/hackernews | 24 Nov 2023
    2 projects | news.ycombinator.com | 22 Nov 2023
  • Help required: Port kellnr from rocket.rs to axum
    2 projects | /r/rust | 6 Oct 2023
    I’m the author of https://kellnr.io. When I started working on Kellnr three years ago, https://rocket.rs was “the web framework” to use. Unfortunately, the project seems dead. Before adding more functionality using an unmaintained framework, I want to port Kellnr to https://github.com/tokio-rs/axum.
  • Crux: Cross-platform app development in Rust
    7 projects | news.ycombinator.com | 28 Sep 2023
    Or else you could of course just use https://rocket.rs/
  • Building a Rust app with Perseus
    8 projects | dev.to | 5 Jul 2023
    Rust is a popular system programming language, known for its robust memory safety features and exceptional performance. While Rust was originally a system programming language, its application has evolved. Now you can see Rust in different app platforms, mobile apps, and of course, in web apps — both in the frontend and backend, with frameworks like Rocket, Axum, and Actix making it even easier to build web applications with Rust.
  • Need recommendations for technologies, frameworks etc. for an IoT device project in Rust
    2 projects | /r/embedded | 22 Jun 2023
    I've done some research but I have to admit that creating embedded devices is a totally new subject for me, but that is the point of the project - main goal is learning, and creating something is the secondary goal, so please bear with me and my knowledge of the subject. So, for the hardware I've seen many people recommending SMT32 family devices, but I've also read that anything with the Cortex-M processor can be suitable. Need more info on that. OS is a hard choice for me because on one hand I was thinking of Ubuntu Core but the device support is not really that good I think, so other options I've found are Tock and RIOT-OS, and I am gravitating towards the latter because it's main focus is on IOT devices. I've found frameworks like Rocket.rs for a web app, tauri.app for desktop app (which might not be needed but I still like the idea). Also found Tokio.rs which apparently will help with the networking. There was a discussion from the other members about using the Golioth cloud platform with Zephyr and C++, and I don't know if there are any other alternatives for Golioth that support Rust, I've found webthings.io but I am not sure if it's an alternative, or something else actually, so I would be happy to learn more about that. Again I want to hear your recommendations regarding anything that will help creating a project like that.

What are some alternatives?

When comparing ComLightInterop and Rocket you can also consider the following projects:

Ryujinx - Experimental Nintendo Switch Emulator written in C#

actix-web - Actix Web is a powerful, pragmatic, and extremely fast web framework for Rust.

miniserde - Data structure serialization library with several opposite design goals from Serde

axum - Ergonomic and modular web framework built with Tokio, Tower, and Hyper

mach - zig game engine & graphics toolkit

yew - Rust / Wasm framework for creating reliable and efficient web applications

sapio - A Bitcoin Programming Language

tokio - A runtime for writing reliable asynchronous applications with Rust. Provides I/O, networking, scheduling, timers, ...

pfr - std::tuple like methods for user defined types without any macro or boilerplate code

rust-websocket - A WebSocket (RFC6455) library written in Rust

mach-glfw-vulkan-example - mach-glfw Vulkan example

hyper - An HTTP library for Rust