Trying to write a cross-language library

This page summarizes the projects mentioned and recommended in the original post on /r/rust

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
  • PyO3

    Rust bindings for the Python interpreter

  • I remembered that PyO3 is a thing and I've never used it. I wondered if there were other similar projects out there, or if it was possible to natively build bindings for the following languages:

  • uniffi-rs

    a multi-language bindings generator for rust

  • Could someone point me to resources for this? I've looked and I found Mozilla's uniffi-rs which doesn't seem to support much right now. But I could use some more resources / reading material if someone has them.

  • 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
  • rust-cpython

    Rust <-> Python bindings

  • Python: PyO3 or rust-cpython plus maturin for packaging. (PyO3 was originally forked from rust-cpython to explore alternative API designs that required a nightly-channel compiler to implement)

  • maturin

    Build and publish crates with pyo3, cffi and uniffi bindings as well as rust binaries as python packages

  • Python: PyO3 or rust-cpython plus maturin for packaging. (PyO3 was originally forked from rust-cpython to explore alternative API designs that required a nightly-channel compiler to implement)

  • napi-rs

    A framework for building compiled Node.js add-ons in Rust via Node-API

  • Node.js: Neon or napi-rs (Or use Node.js's support for loading WebAssembly modules as /u/mamcx suggested.)

  • wasmer-go

    🐹🕸️ WebAssembly runtime for Go

  • Go: I don't know of anything higher-level than either exposing a C ABI from Rust and then calling it using cgo or using wasmer-go to embed a WebAssembly runtime in your Go program.

  • SWIG

    SWIG is a software development tool that connects programs written in C and C++ with a variety of high-level programming languages.

  • Another option is SWIG, but I don't like it too much.

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  • SkinFixer

    SkinFixer aims to make skins possible for Offline-mode servers, and allow for users to change their skin in-game.

  • Examples here:- Native rust code- Native function declarations in Java- Library wrapper in Java

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

  • Encapsulation in Rust and Python

    4 projects | dev.to | 5 Apr 2024
  • Rust Bindings for the Python Interpreter

    1 project | news.ycombinator.com | 20 Feb 2024
  • Calling Rust from Python

    2 projects | news.ycombinator.com | 8 Oct 2023
  • Bytewax: Stream processing library built using Python and Rust

    2 projects | news.ycombinator.com | 25 Jul 2023
  • Documenting Native Python Extensions Made With Rust and PyO3

    2 projects | /r/rust | 19 Jun 2023