Skip to content

A 1:1 foreign function interface mapping of the C/C++ ReaScript API for Rust

Notifications You must be signed in to change notification settings

Cloud-Scythe-Labs/reascript-rs

Repository files navigation

reascript-rs 🦀

A direct foreign function interface mapping of the C/C++ ReaScript API for Rust!

⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢤⣶⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⡾⠿⢿⡀⠀⠀⠀⠀⣠⣶⣿⣷⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⣦⣴⣿⡋⠀⠀⠈⢳⡄⠀⢠⣾⣿⠁⠈⣿⡆⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⣰⣿⣿⠿⠛⠉⠉⠁⠀⠀⠀⠹⡄⣿⣿⣿⠀⠀⢹⡇⠀⠀⠀
⠀⠀⠀⠀⠀⣠⣾⡿⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⣰⣏⢻⣿⣿⡆⠀⠸⣿⠀⠀⠀
⠀⠀⠀⢀⣴⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣾⣿⣿⣆⠹⣿⣷⠀⢘⣿⠀⠀⠀
⠀⠀⢀⡾⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⣿⠋⠉⠛⠂⠹⠿⣲⣿⣿⣧⠀⠀
⠀⢠⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣿⣿⣿⣷⣾⣿⡇⢀⠀⣼⣿⣿⣿⣧⠀
⠰⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⡘⢿⣿⣿⣿⠀
⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⣷⡈⠿⢿⣿⡆
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠛⠁⢙⠛⣿⣿⣿⣿⡟⠀⡿⠀⠀⢀⣿⡇
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣶⣤⣉⣛⠻⠇⢠⣿⣾⣿⡄⢻⡇
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣦⣤⣾⣿⣿⣿⣿⣆⠁

All types and functions are wrapped, meaning you won't need to use the unsafe keyword, however it is still important to note that they are technically unsafe under the hood.

reascript-rs makes it easier to follow the ReaScript API in Rust as if you were using one of the already supported languages, e.g. Lua, Python, etc. All naming conventions and inputs are untouched, and will be exactly as they appear in the official ReaScript API documentation, allowing you to write your own higher level APIs as you see fit.

Versioned Builds

Firstly, a special thanks to @helgoboss and other contributors to the reaper-rs project, which is the inspiration for reascript-rs.

reascript-rs aims to be forwards compatible from its initial release, and if requested we may also include specific API versions of previous releases. To achieve this we create each release of the open source C/C++ GitHub mirror, made available by Cuckos, auto-generating releases as new versions become available. This means that developers or average users can write plugins, macros and scripts in Rust so long as the REAPER version matches the ReaScript version, and that the Rust API will always be up-to-date with the official release. Each release version will be the same as its corresponding ReaScript version, e.g. ReaScript v0.1.0 -> reascript.rs v0.1.0

Our hope by doing this, is for Rust to be officially adopted by the ReaScript Supported Languages.

About

A 1:1 foreign function interface mapping of the C/C++ ReaScript API for Rust

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published