Project Identifier
...
- Shawn Amundson <amundson@bitwise.io>
- Silas Davis <silas@monax.io>
- Greg Hill <greg.hill@monax.io>
- Sean Young <sean@mess.org>
Abstract
Solang is a compiler for the Solidity language that can target ewasm (used by Hyperledger Burrow, future ethereum and others), Sawtooth Sabre, and Parity Substrate. It is written in rust and uses LLVM as the compiler backend. The aim is for full compatibility with the Solidity language where possible .
Once a compiler is written, other tooling can be written that depends on having compiler components available. Just like llvm is a compiler toolkit, Solang wants to be a Solidity toolkit. Linters, analysis tools, language servers, debuggers etc can be written by reusing the parsing/resolving phases of Solang.
Context
Solidity as a language does have its quirks, however it has established itself as a defacto language commonly used for smart contractcontracts. Having Solidity support for the Hyperledger ledger ledgers would be a great feature, conversely it would be beneficial for those project projects to collaborate on a common compiler component.
Dependent Projects
Solang does not depend on any other project.
...
This project is funded through a Web3 Foundation grant. In order to receive the grant, the project commits to a roadmap. This roadmap means Solang will have full Solidity language support in fall 2020.
How To
The source code is host hosted on github: https://github.com/hyperledger-labs/solang . Solang can compile Solidity for use with Hyperledger Burrow, and Hyperledger Sawtooth. How this can be done is documented: https://solang.readthedocs.io/en/latest/running.html
References
Closure
The aim is to provide great tooling for Solidity developers, whatever ledger they are using. If developers start using our tooling, then we are succeeding.
Reviewed By
- Angelo De de Caro
- Arnaud J Le HorsLE HORS
- Christopher Ferris
- Dan Middleton
- Gari Singh
- Hart Montgomery
- Mark Wagner (Deactivated)
- Nathan George
- Swetha Repakula
- Tracy Kuhrt
- Troy Ronda