Solaris is a Latin word meaning "pertaining to the sun" and a Solidity Smart Contracts unit test harness written in Rust using the native Parity Client EVM.
- Statically typed tests in Rust:
- Because test harnesses are written in Rust, changes in harness code are checked against Rust's typesystem
 - Contracts are compiled using solcjs or solc, the standard for deployed smart contracts
 
 - Using native Parity EVM:
- latest stuff from Parity
 - contracts will run exactly the same as on a Parity full node
 
 - High performance:
- no unnecessary overhead (only the bits you need)
 - directly run EVM bytecode on the Parity EVM interpreter
 
 - Directly import Solidity contracts
- Solaris directly converts the ABI + bytecode of compiled Solidity contracts into native Rust code
 
 - IDE-agnostic
- Solaris does not care what development path is followed
 - As long as the contract can produce a valid binary and ABI, Solaris can test it
 
 
- Emulate contract behavior once it has been successfully deployed to a Parity full node
 - Provide developers with a lightweight, simple API for directly testing smart contracts
 - Mock every part external to smart contract execution (blockhash, blocktimes, senders, etc)
- Potentially even mock features provided by other external contracts
 
 - Modular design as a pluggable backend
- At time of writing, Solaris depends heavily on the monolithic 
parity-ethcorecrate - Solaris will eventually be deployed as a stand-alone crate, with minimal dependencies
 
 - At time of writing, Solaris depends heavily on the monolithic 
 - Singularity in purpose as a unit testing framework
 - Interoperability with other test frameworks (common input/output formats?)
- JSON
 - YAML
 
 
- Solaris is NOT a development or all-in-one testing framework
- Full-service frameworks like Truffle take one from design-to-deployment, Solaris is not that
 - Testing frameworks like Hive incorporate numerous testing strategies (unit, integration, etc), Solaris is not that
 - Solaris aims to be a focused, single-purpose utility for unit testing smart contracts
 
 - Consensus rules
- Consensus rules determine which blockchain history is valid, not proper contract execution
 - Solaris is only concerned with how a contract behaves once successfully deployed on a blockchain
 
 - Differences in EVM implementations
- Subtle differences in various EVM implementations may lead to different behavior (which would lead to consensus bugs)
 - Validating Parity's EVM interpreter implementation is a separate and important project
 - Other tools, like Hive and KEVM are better suited for benchmarking/testing EVM implementations