ffizz is a library of utilities for exporting Rust libs for use in other languages

Related tags

Utilities ffizz
Overview

ffizz

ffizz is a library of utilities for exporting Rust libs for use in other languages.

FFI generally requires a lot of unsafe code, which in turn requires a lot of manual verification of assumptions. The ffizz libraries help by implementing some common patterns with clear safety guidelines that are easily described in the documentation for the C side of the interface.

  • ffizz-passby supports passing arguments and return values by pointer or by value.
  • ffizz-header supports generating a C header corresponding to a library crate
  • ffizz-string provides a simple string abstraction
You might also like...
Fast and scalable phylogenomic utilities 🐱 .

ogcat Fast and scalable phylogenomic utilities 🐱 . Installation Prebuilt binaries See releases. The musl binary for Linux should be the most compatib

Modeling is a tools to analysis different languages by Ctags

Modeling Modeling is a tools to analysis different languages by Ctags process: generate to opt call ctags with opt analysis ctags logs output resulse

A mostly drop-in replacement for mercantile written w/ rust, plus several other util(e)ities.

utiles utiles = utils + tiles A mostly drop-in replacement for mercantile written w/ rust, plus several other util(e)ities. Installation pip install u

A service for helping your cat find other cats
A service for helping your cat find other cats

Check back later! Discord Self-hosting This is an open-source service! Feel free to host you own private instances. All we ask is you credit us and li

Easy to use Rust i18n library based on code generation

rosetta-i18n rosetta-i18n is an easy-to-use and opinionated Rust internationalization (i18n) library powered by code generation. rosetta_i18n::include

How to use an Arduino library in a Rust project?

Example of an Arduino library usage in a Rust project The project tested with Arduino UNO on Fedora 35. It demonstrates the usage of LiquidCrystal_I2C

bevy_blender is a Bevy library that allows you to use assets created in Blender directly from the .blend file
bevy_blender is a Bevy library that allows you to use assets created in Blender directly from the .blend file

bevy_blender bevy_blender is a Bevy library that allows you to use assets created in Blender directly from the .blend file.

Proof of Concept / Experiment: Use IDF-HAL-LL from bare metal Rust
Proof of Concept / Experiment: Use IDF-HAL-LL from bare metal Rust

Proof of Concept / Experiment: Use IDF-HAL-LL from BM Rust idf-ll-compile pre-compiles a static library for ESP32C3 and ESP32 esp-ll a simple crate th

How to use libtor in a Rust app

libtor example Uses libtor crate to run a Tor daemon in process. This example spawns the Tor daemon using Tokio's spawn_blocking, and then spawns othe

Comments
  • Figure out how to gracefully generate headers

    Figure out how to gracefully generate headers

    It's quite possible that this can be done with xtask -- just depend on the library crate and ffizz_header, call ffizz_header::generate, and write out the result. Linking might require actually calling something in the library crate?

    Anyway, this is probably a formulaic thing to put in the crate docs for ffizz-header.

    opened by djmitche 0
  • Add string support

    Add string support

    I've got some work in progress in #1.

    Remaining:

    • [x] impl From<..> for FzString for various ..
    • [x] canned fz_string_... functions that can just be re-exported for lazy users
    • [ ] crate docs
    • [x] decide how to handle FzString::Null -- should return Option everywhere? Some users will want to allow NULL, some will not..
    opened by djmitche 0
  • Add string support

    Add string support

    This adds a new crate, ffizz-string, which implements a simple but effective string type for passing string data between C and Rust.

    It's not the fastest, but for implementing a simple library that doesn't need performance, it's adequate.

    opened by djmitche 0
Owner
Dustin J. Mitchell
Dustin J. Mitchell
Utilities to gather data out of roms. Written in Rust. It (should) support all types.

snesutilities Utilities to gather data out of roms. Written in Rust. It (should) support all types. How Have a look at main.rs: use snesutilities::Sne

Layle | Luca 5 Oct 12, 2022
A set of utilities to better enable polymorphic behavior in Rust

Polymorph A set of utilities to better enable polymorphic behavior in Rust. Introduction Rust is a wonderful language, with a strong emphasis on fast,

null 3 Mar 17, 2022
Common utilities code used across Fulcrum Genomics Rust projects

fgoxide Common utilities code used across Fulcrum Genomics Rust projects. Why? There are many helper functions that are used repeatedly across project

Fulcrum Genomics 2 Nov 2, 2022
Build and deploy cross platform bioinformatic utilities with Rust.

The Bioinformatics Toolkit RUST-backed utilities for bioinformatic data processing. Get started The fastest way to get started it to download the appl

null 5 Sep 8, 2023
Utilities for integrating Datadog with opentelemetry + tracing in rust

Non-official datadog tracing and log correlation for Rust services. This crate contains the necessary glue to bridge the gap between OpenTelemetry, tr

willbank 5 Oct 31, 2023
Utilities and tools based around Amazon S3 to provide convenience APIs in a CLI

s3-utils Utilities and tools based around Amazon S3 to provide convenience APIs in a CLI. This tool contains a small set of command line utilities for

Isaac Whitfield 47 Dec 15, 2022
Utilities for interacting with the Behringer X-Touch Mini MIDI controller

xtouchmini Collection of utilities for interacting with the Behringer X-Touch Mini MIDI controller, including reading button/knob/fader inputs and sen

null 5 Nov 11, 2021
CLI & Utilities for fractional.art

fractional-rs CLI & Utilities for fractional.art CLI Usage The CLI uses Flashbots' relay to submit the transactions. No bribe is required as you pay v

Georgios Konstantopoulos 20 Dec 27, 2022
An asynchronous IO utilities crate powered by tokio.

An asynchronous IO utilities crate powered by tokio.

Harry 2 Aug 18, 2022
A box full of utilities, a unworthy replacement for coreutils / busybox / toybox.

Gearbox A box full of utilities, a unworthy replacement for coreutils / busybox / toybox. List of content How to setup Systems Ubuntu Arch How to buil

Gemlock 5 Jul 21, 2022