Introducing rs_abieos: A High-Performance Rust Wrapper for Abieos

Thiago Canellas
EOS Rio
Published in
2 min readApr 11, 2024

Traditionally, (de)serialization, crucial for EOSIO and Antelope ecosystems, has been performed by the popular Javascript libraries, eosjs (deprecated) and now, with wharfkit. For use cases in which performance is critical, developers could use it via the Abieos C++ implementation or through JavaScript wrappers, such as the node-abieos, a NodeJS wrapper developed by EOS Rio and used by Hyperion.

While JavaScript wrappers and libraries provide ease of use for a broad developer community, they introduce inefficiencies, especially due to memory allocation limits. These limitations affect various operations, including node initialization from snapshots, History APIs, and certain Oracle tasks.

EOS Rio’s initiative to overcome these limitations led to the selection of Rust for its security, performance, efficiency, and capacity for handling large memory allocations. This aligns with the growing adoption of Rust in the Antelope and EOSIO ecosystems, as well as its established presence in other blockchain developer communities, such as Solana.

Rust Abieos wrapper significantly enhances the performance in binary <> JSON conversion using the ABI for contracts on Antelope chains. This development addresses the critical need for efficient memory allocation in handling large-scale tasks, a challenge increasingly evident as Antelope chains expand in user base and application scope.

Rust Abieos is currently based on the vanilla version of the AntelopeIO/abieos. As such, it is designed for minimal maintenance, ensuring compatibility with future Abieos updates by ENF without requiring changes. This tool enriches the developer’s toolbox, facilitating enhanced interaction within the ecosystem through a new, efficient programming language.

Rust Abieos can be found here

The discussion and community support will happen on the Hyperion Telegram Channel.

--

--