Request for funding to support the development of a Rust SDK for Qubic, aimed at providing developers with a simple, type-safe, and efficient interface for interacting with Qubic's RPC APIs. The total requested amount is USD 31,200, covering development, testing, and documentation costs over the next 3 months.
Option 0: No, I don’t want
Option 1: Yes, allocate the equivalent amount in QUBIC
The Rust SDK for Qubic will provide a comprehensive, developer-friendly toolkit to integrate with Qubic's RPC APIs. Leveraging Rust's strong type system and asynchronous capabilities, the SDK aims to streamline interactions with Qubic, ensuring type safety, efficiency, and ease of use for developers.
Planned features include:
- Core API support for retrieving ticks, balances, transactions, and smart contract data.
- Developer utilities for error handling, logging, and JSON serialization.
- Extensibility to accommodate future endpoints and features.
A dedicated team will focus on building the Rust SDK for Qubic. Roles include:
-
Technical Lead
- Required: Experience in Rust development and SDK design.
- Focus on architecture, core module implementation, and performance optimization.
-
Backend Developer
- Required: Strong experience in Rust async programming.
- Focus on implementing RPC endpoints and handling asynchronous operations.
-
Test Engineer
- Required: Experience with unit and integration testing in Rust.
- Focus on writing robust test cases and setting up mock API environments.
-
Documentation Specialist
- Required: Familiarity with
rustdoc
and technical writing for developers. - Focus on inline documentation, examples, and API references.
- Required: Familiarity with
-
Core Modules
- Client Module: Handles API requests, including headers, retries, and error management.
- Endpoint Modules: Implements functionalities like
balances
,transactions
, andsmart_contracts
. - Error Handling: Defines custom error types for network issues and API errors.
- Utilities: Provides helper functions for tasks like URL construction and input validation.
-
Supported Endpoints
/latestTick
/ticks/{tickNumber}/tick-data
/ticks/{tickNumber}/approved-transactions
/ticks/{tickNumber}/chain-hash
/ticks/{tickNumber}/quorum-tick-data
/ticks/{tickNumber}/store-hash
/broadcast-transaction
/tx-status/{txId}
/v1/transactions/{txId}
/v1/tx-status/{txId}
/v1/identities/{identity}/transfer-transactions
/balances/{addressID}
/balances/{id}
/querySmartContract
/assets/{identity}/issued
/assets/{identity}/owned
/assets/{identity}/possessed
/status
/block-height
/v1/healthcheck
/v1/latest-stats
- Development Workflow
-
Initialization
- Set up the Rust project using
cargo
. - Integrate
reqwest
for HTTP requests,tokio
for async runtime, andserde
for JSON parsing.
- Set up the Rust project using
-
Module Implementation
- Develop the
Client
module to handle API requests. - Implement endpoint-specific modules, starting with high-priority features like transactions and balances.
- Develop the
-
Testing
- Write unit tests using mock API responses.
- Develop integration tests against a live test API.
-
Documentation
- Add inline documentation using
rustdoc
. - Provide example usage in the
examples/
directory.
- Add inline documentation using
-
Release
- Publish the library to
crates.io
with a comprehensive README.
- Publish the library to
- Set up the project and initialize the core modules.
- Implement basic functionality for retrieving ticks and balances.
- Establish the testing framework and write initial unit tests.
- Add support for transaction-related endpoints.
- Implement error handling and logging utilities.
- Begin writing integration tests.
- Implement smart contract interaction and asset management.
- Optimize performance for asynchronous operations.
- Finalize testing for all modules.
- Conduct end-to-end testing.
- Write detailed documentation and examples.
- Perform a final review and publish to
crates.io
.
-
Developer-Friendly SDK
- A simple, intuitive interface for interacting with Qubic RPC APIs.
-
Comprehensive Coverage
- Support for all major endpoints in the Qubic ecosystem.
-
Reliable and Secure
- Strong error handling and robust testing for production-grade reliability.
-
Detailed Documentation
- Inline comments, examples, and comprehensive guides for developers.
Item | Cost (USD) |
---|---|
Core Module Implementation | 9,600 |
Endpoint Development | 12,000 |
Testing Framework & Integration | 7,200 |
Documentation | 1,200 |
Project Management | 1,200 |
Total | 31,200 |
- Initial deposit: 40% ($12,480) due before project commencement
- Progress payments: 50% ($15,600) distributed across project milestones
- Final payment: 10% ($3,120) upon successful completion and handover
- Comprehensive error handling to prevent runtime issues.
- Unit and integration tests for all functionalities.
- Peer-reviewed code for each module.
- Mock environments for reliable testing.
- Open-source contributions to improve code quality and feature coverage.
- Active feedback loop with Qubic developers.
- Regular updates for compatibility with Qubic's evolving RPC APIs.
- Bug fixes and performance enhancements.
- Add advanced support for multi-signature transactions and extended smart contract functionalities.
- Host workshops and publish tutorials to promote adoption.
-
Developer Adoption
- Number of projects integrating the SDK.
-
Code Quality
- 90%+ test coverage and successful audits.
-
Documentation
- Positive feedback on usability and clarity.
-
Community Involvement
- Active contributions and feedback loops.
This proposal seeks funding to develop a robust Rust SDK, empowering developers to build on the Qubic network with ease and confidence.