R3E Network has published a new version of NeoRust, a substantial maintenance release focused on code quality, security, and developer experience.
First released in 2021, NeoRust is a Rust SDK that helps developers build on top of Neo N3 using a high-level API with integrated error handling. The project was funded by GrantShares in 2023 and includes tools for cryptography, wallet management (BIP-39/44 HD wallet, multisig, and hardware wallet support), and RPC-based node interaction. It also supports smart contract deployment and invocation, NEP-17 token manipulation, WebSocket-based event monitoring, transaction simulation for price estimation, and network configuration for MainNet, TestNet, and custom networks.
Main improvements in v1.0.3
NeoRust v1.0.3, released on February 7th, went through 10 rounds of code review and refactoring efforts that addressed error handling patterns, memory security, performance optimizations, and platform-specific features. This release is compatible with Neo-CLI v3.9.1, ensuring developers take advantage of the latest Neo blockchain features, including contract fee whitelisting, Treasury native contracts, and enhanced execution fee factor accuracy introduced in the January 2026 Neo v3.9 update.
Improved error handling
Descriptive error messages: This release replaces over 40 messages. .unwrap() call with .expect() Contains descriptive error messages to improve the developer experience when debugging issues. Rather than encountering a generic panic message, developers now receive contextual information about what went wrong and where.
Code cleanup: Dead code removal removes unused fields, imports, and commented code throughout the codebase, reducing the maintenance burden and improving code readability for contributors and users examining the SDK sources.
Performance optimization
Memory allocation efficiency: 9 vector allocations are optimized. Vec::with_capacity() Preallocation reduces unnecessary memory reallocation during runtime operations. This release also removes 4 unnecessary .clone() This eliminates redundant memory copies that can impact performance in high-throughput scenarios.
Boundary Check: Added debug_assert! Buffer bounds statements in hotpath decoder methods provide additional safety guarantees during development and testing without impacting release build performance.
Documentation enhancements
Complete module coverage: This release adds comprehensive documentation to previously undocumented modules, achieving 100% module documentation coverage. serde_with_utils and contract_manifest modules. All Serde serialization helpers now include usage examples.
Memory layout documentation: StackItem enum describes various size and boxing considerations to help developers understand memory usage patterns when working with stack items in the Neo virtual machine.
Zero-copy access method: new as_array_ref() and as_map_entries() method of StackItem Provides efficient zero-copy access to array and map data without unnecessary allocations.
Version Consistency: Fixed document version mismatch and updated references from v1.0.1 to v1.0.3. lib.rs and neo_types/mod.rs Located in four locations, preserving historical references where necessary.
Improved security
NeoRust v1.0.3 introduces multiple security enhancements focused on protecting sensitive cryptographic material in memory.
Zeroing memory: Zeroize and ZeroizeOnDrop Trait implemented KeyPair Securely clears the private key bytes from memory when the key pair is deleted. custom Drop implementation Account and NEP6Account Ensures that encrypted private key strings are zeroized to prevent sensitive data from remaining in memory after use.
Input Validation: Contains input validation assertions added to prevent buffer underflows in debug builds and detect potential security issues during development before they reach production.
Dependency security: jsonwebtoken Upgraded from version 9.2.0 to 10.3.0 using rust_crypto Functionality eliminates process level CryptoProvider Meet your requirements and modernize your encryption implementation.
Platform-specific fixes
This release also addresses platform-specific issues affecting credential storage on macOS and Windows.
macOS Keychain integration: neo-cli macOS Keychain integration has been fixed by replacing missing standalone function calls (passwords::set_generic_password, get_generic_password, delete_generic_password) with the correct one SecKeychain From the method API security-framework 2.11. This allows Neo Wallet credentials to be properly stored and retrieved using the native macOS Keychain.
Windows Credential Store: A borrow compiler error (E0382) after a move was resolved by reordering operations on Windows credential storage. store_windows_credentialprefix the borrow. HashMap::insert Move operation. This fix allows Windows users to properly store their wallet credentials in the native Windows Credential Manager.
Improved code quality
Application of the DRY principle: A neo_config_lock() helper function for config.rs Four identical locks were extracted to remove the plus poison recovery block. api_trait.rsimproves code maintainability and reduces duplication.
Clip suppression now documented: inline alignment comments added to all items #!(allow(clippy::...)) deletion of src/lib.rsdocument why certain linter warnings are intentionally disabled, and ensure that these decisions are visible to future contributors.
API cleanup: dead nns field from RpcClient has been removed, unused macros have been cleaned up, and the public API surface has been streamlined to reduce confusion about which features are actively supported.
Platform support and availability
NeoRust v1.0.3 provides pre-built binaries for multiple platforms.
- Linux:
neorust-linux-amd64.tar.gz - macOS:
neorust-macos-amd64.tar.gz - Windows:
neorust-windows-amd64.zip
These binaries allow developers to use NeoRust's CLI tools without requiring a full Rust development environment.
Shortly after the v1.0.3 release, the team published v1.0.4 to address CI configuration and security audit settings. This ensures that all automated checks pass successfully, while properly documenting advisories for known dependencies, even without an available upstream fix.
compatibility
NeoRust v1.0.3 is compatible with Neo v3.9.1 and above, allowing developers to build applications that take advantage of the latest Neo N3 protocol features. Developers using NeoRust should update to this version to benefit from improved error handling, increased security for cryptographic operations, and platform-specific fixes for credential storage on macOS and Windows.
The latest version of NeoRust can be downloaded from the link below.
https://crates.io/crates/neo3

