NeoRust
A comprehensive Rust SDK for the Neo N3 blockchain platform, providing a complete toolkit for interacting with Neo N3 networks.
๐ Project Status
- Version: 0.4.4 (Production Ready - 99.5% Complete)
- Rust Version: 1.70.0+
- Platform Support: Windows, macOS, Linux
- Security: All dependencies audited, 0 known vulnerabilities
- Coverage: Comprehensive testing with property-based tests
- Production Readiness: Enterprise-grade with rate limiting and gas estimation
Features
Core Features
- ๐ Cryptography - Complete cryptographic functions including key generation, signing, and verification
- ๐ผ Wallet Management - Create, import, and manage Neo wallets with hardware wallet support
- ๐ RPC Client - Full-featured RPC client for Neo N3 node interaction
- ๐ฆ Smart Contracts - Deploy, invoke, and interact with Neo N3 smart contracts
- ๐ช Token Support - Native NEP-17 token operations and custom token support
- ๐ Network Support - Mainnet, Testnet, and custom network configurations
New in v0.4.4
- โก Real-time Gas Estimation - Accurate gas calculation via blockchain RPC
- ๐ฆ Rate Limiting - Token bucket algorithm with configurable presets
- ๐ญ Production Client - Enterprise features with connection pooling and circuit breakers
- ๐งช Property-Based Testing - Comprehensive testing with proptest framework
- ๐ Enhanced Monitoring - Metrics collection and health check support
Applications
- ๐ฅ๏ธ CLI Tools - Command-line interface for common blockchain operations
- ๐ผ๏ธ GUI Application - Desktop GUI application built with Tauri and React
Quick Start
Add NeoRust to your Cargo.toml:
[]
= "0.4.4"
Basic Usage
use *;
// Create a new wallet
let wallet = new.unwrap;
// Connect to Neo testnet
let client = new.unwrap;
// Get account balance
let balance = client.get_balance.await?;
println!;
Components
Core SDK (neo3)
The main Rust SDK providing all blockchain functionality.
CLI Tool (neo-cli)
Command-line interface for blockchain operations:
GUI Application (neo-gui)
Desktop application with modern React UI. Note: Requires GTK libraries on Linux.
Building
Core SDK and CLI
GUI Application (requires additional dependencies)
Linux (Ubuntu/Debian):
&& &&
macOS and Windows:
&& &&
Documentation
Examples
Explore our comprehensive examples:
- Basic Operations: Wallet creation, token transfers, balance queries
- Smart Contracts: Deploy and interact with Neo N3 contracts
- Advanced Features: Multi-sig wallets, hardware wallet integration
- DeFi Integration: Interact with popular Neo DeFi protocols
- Neo X: Cross-chain bridge operations
See the examples directory for full code samples.
License
Licensed under MIT license (LICENSE or http://opensource.org/licenses/MIT)
Testing
# Run all tests
# Run specific component tests
# Run integration tests
CI/CD
The project uses GitHub Actions for continuous integration:
Running CI Locally
Before pushing changes, run the local CI scripts:
# Run all CI checks
# Or run individual checks
GitHub Workflows
- neorust-build-test.yml - Main Rust build and test workflow
- neo-gui.yml - Separate workflow for GUI (Tauri) builds
- docs.yml - Documentation generation and deployment
- security.yml - Security audits and vulnerability scanning
- ci.yml - Comprehensive CI checks
- rust.yml - Rust-specific checks
Contributing
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Please ensure:
- All tests pass (
cargo test --workspace) - Code is formatted (
cargo fmt) - No clippy warnings (
cargo clippy -- -D warnings) - Documentation is updated
- CI checks pass locally before pushing
Security
For security issues, please email security@r3e.network instead of using the issue tracker.
Acknowledgments
- Neo Foundation for the Neo N3 blockchain
- Rust community for excellent tooling
- All contributors who have helped shape this project