SCALE Codec Comparator
This Request for Proposals is closed, meaning we are not looking for any more proposals on this topic at the moment.
- Status: Implemented for ten encoding types
- Proposer: Marcin Gรณrny
Project Description ๐โ
To date, there are 9 published implementations of the SCALE Codec. Since each is implemented by a different team & the reference implementation still introduces small fixes, it would be beneficial to compile a table of feature-completeness. This would provide (some) assurance that the implementation in a given language is safe & sound to use.
One approach would be to provide wrappers to the Rust reference implementation, like in scale.rb and using the Foreign Function Interface (e.g. here) to call these directly from within the library.
Stage 2: To take this a step further, a GitHub action could be integrated to run all native unit tests also against the Rust lib. For repos which provide feature completeness & pass all relevant tests, a SCALE specific badge could be awarded.
Deliverables ๐ฉโ
- Total Estimated Duration: 2+ months
- Full-time equivalent (FTE): 1
- Total Costs: ~ 12,000 DAI
Milestone 1: Feature-completeness & FFI to Rustโ
- Estimated Duration: 2 months
- FTE: 1
- Costs: ~ 10,000 DAI
For each library listed on substrate.dev:
- Create a PR, providing a FFI to Rust's reference implementation.
- Ensure feature completeness, by ensuring there are comprehensive unit tests for each data type.
Milestone 2: Badge integrationโ
-
Estimated Duration: 1 week
-
FTE: 1
-
Costs: ~ 2000 DAI
-
Create a GitHub badge for SCALE feature complete libs
-
Ensure that each lib listed above has the process of publishing the badge integrated into the CI workflow (e.g. GitHub action to run tests & award badge on successful run)
Note: The goal is to have your changes merged upstream. While the final decision is taken by the repo owners, you should make sure that your PRs pass all checks specific to each lib, conforms to their contributing guidelines etc.