Please describe your proposed solution.
Scalus is a Scala implementation of Cardano Plutus, PlutusTx, including UPLC evaluation machine.
It allows developers to write Cardano smart contracts using Scala programming language.
Scalus leverages Scala compiler plugin system and macros to convert Scala code to Cardano Untyped Plutus Core (UPLC), similarly to how Plutus converts Haskell to UPLC.
Scalus has huge benefits over all other solutions.
Scala code can be compiled to JVM bytecode, JavaScript, and LLVM via Scala Native. This means that you write code once in one language, and use it everywhere, cross-platform, frontend and backend. And easily integrate with other code in Java, Kotlin, JavaScript, TypeScript, or even Rust, if needed.
Scalus will provide Java API, and TypeScript binding to generated JavaScript, enabling Plutus Virtual Machine evaluation and cost computation for JVM/JavaScript platforms. This can be leveraged by other projects from the ecosystem like <https://github.com/bloxbean>, Lucid, etc.
Scalus has an API for low level UPLC code creation, composition and manipulation, unlike, say, Aiken. So developers have unlimited flexibility and power over their contracts, comparable to the Plutarch library.
Scalus leverages Scala property-based testing framework, ScalaCheck, analogue of Haskell QuickCheck, to rigorously test its code, and will provide primitives and solutions to meticulously test your contracts and DApps with all possible/feasible inputs.
There is nothing even close to this solution in terms of power to cost ratio.
How does your proposed solution address the challenge and what benefits will this bring to the Cardano ecosystem?
Adding Scala support will have a large impact on the Cardano Developer Ecosystem:
- open a large pool of talent for hire
- simplify adoption by the financial sector companies that heavily invested in Java and Scala ecosystems
- greatly improve developers experience with working debugger, good IDE support, faster 'change-compile-test' turnaround
- Allow code reuse between multiple platforms (JVM, JavaScript, TypeScript, potentially LLVM/WebAsm, Android, and iOS), on-chain, and off-chain backend and frontend.
- Great performance, code maintainability and modularity, universality
- Scala is one of the best functional programming languages in existence, with a mature ecosystem, libraries, tools, and community.
How do you intend to measure the success of your project?
By the amount of happy Cardano developers, and the amount of projects successfully using Scalus. And GitHub stars, number of issues and PRs.
Please describe your plans to share the outputs and results of your project?
The project is fully open source. All the outputs and results will be published on GitHub:
<https://github.com/nau/scalus>
<https://github.com/nau/scalus-starter>
The documentation will be published online on https://scalus.org
The news, updates and announcements will be published on the official Scalus Twitter:
<https://twitter.com/Scalus3>
and Discord: <https://discord.gg/ygwtuBybsy>