#data #shared #unsafe #safe #helper #buffer #marshalling

cobhan

Cobhan FFI is a system for enabling shared code to be written in Rust and consumed from all major languages/platforms in a safe and effective way, using easy helper functions to manage any unsafe data marshaling

2 releases

0.1.1 Nov 4, 2022
0.1.0 Mar 3, 2022

#2788 in Rust patterns

Download history 5/week @ 2024-07-22 65/week @ 2024-07-29 63/week @ 2024-08-05 48/week @ 2024-08-12 73/week @ 2024-08-19 37/week @ 2024-08-26 38/week @ 2024-09-02 68/week @ 2024-09-16 68/week @ 2024-09-23 4/week @ 2024-09-30 2/week @ 2024-10-07 48/week @ 2024-10-14 290/week @ 2024-10-21 53/week @ 2024-10-28 22/week @ 2024-11-04

413 downloads per month

Custom license

17KB
216 lines

cobhan-rust - FFI Data Interface

Cobhan FFI is a system for enabling shared code to be written in Rust and consumed from all major languages/platforms in a safe and effective way, using easy helper functions to manage any unsafe data marshaling.

Types

  • Supported types
    • i32 - 32bit signed integer
    • i64 - 64bit signed integer
    • f64 - double precision 64bit IEEE 754 floating point
    • Cobhan buffer - length delimited 8bit buffer (no null delimiters)
      • utf-8 encoded string
      • JSON
      • binary data
  • Cobhan buffer details
    • Callers provide the output buffer allocation and capacity
    • Called functions can transparently return larger values via temporary files
    • Modern tmpfs is entirely memory backed
  • Return values
    • Functions that return scalar values can return the value directly
      • Functions can use special case and return maximum positive or maximum negative or zero values to represent error or overflow conditions
      • Functions can allow scalar values to wrap
      • Functions should document their overflow / underflow behavior

Dependencies

~2–11MB
~133K SLoC