Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/paradigmxyz/solar

Blazingly fast, modular and contributor friendly Solidity compiler, written in Rust
https://github.com/paradigmxyz/solar

compiler ethereum evm programming-language solc solidity yul

Last synced: about 18 hours ago
JSON representation

Blazingly fast, modular and contributor friendly Solidity compiler, written in Rust

Awesome Lists containing this project

README

        

# solar

[![Crates.io](https://img.shields.io/crates/v/solar-compiler.svg)](https://crates.io/crates/solar-compiler)
[![Downloads](https://img.shields.io/crates/d/solar-compiler)](https://crates.io/crates/solar-compiler)
[![MIT License](https://img.shields.io/badge/license-MIT-blue.svg)](/LICENSE-MIT)
[![Apache-2.0 License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](/LICENSE-APACHE)
[![Actions Status](https://github.com/paradigmxyz/solar/workflows/CI/badge.svg)](https://github.com/paradigmxyz/solar/actions)
[![Telegram Chat](https://img.shields.io/endpoint?color=neon&logo=telegram&label=chat&url=https%3A%2F%2Ftg.sumanjay.workers.dev%2Fparadigm%5Fsolar)][tg-url]

Blazingly fast, modular and contributor friendly Solidity compiler, written in Rust.



Solar cover

## Features and Goals

> [!CAUTION]
> Solar is under active development and is not yet feature complete.
> Use it to speed up your development workflows and tooling.
> Please do not use it in production environments.

- ⚡ Instant compiles and low memory usage
- 🔍 Expressive and useful diagnostics
- 🧩 Modular, library-based architecture
- 💻 Simple and hackable code base
- 🔄 Compatibility with the latest Solidity language breaking version (0.8.*)



Terminal screenshot showing Solar is 40x faster than solc at generating ABI using hyperfine

## Getting started

Solar is available through a command-line interface, or as a Rust library.

### Library usage

You can add Solar to your Rust project by adding the following to your `Cargo.toml`:

```toml
[dependencies]
solar = { version = "0.1.0", package = "solar-compiler" }
```

Or through the CLI:

```bash
cargo add solar-compiler --rename solar
```

You can see examples of how to use Solar as a library in the [examples](/examples) directory.

### Binary usage

Pre-built binaries are available for macOS, Linux and Windows on the [releases page](https://github.com/paradigmxyz/solar/releases)
and can be installed with the following commands:
- On macOS and Linux:
```bash
curl -LsSf https://paradigm.xyz/solar/install.sh | sh
```
- On Windows:
```powershell
powershell -c "irm https://paradigm.xyz/solar/install.ps1 | iex"
```
- For a specific version:
```bash
curl -LsSf https://paradigm.xyz/solar/v0.1.0/install.sh | sh
powershell -c "irm https://paradigm.xyz/solar/v0.1.0/install.ps1 | iex"
```

You can also build Solar from source:
- From crates.io:
```bash
cargo install solar-compiler --locked
```
- From GitHub:
```bash
cargo install --git https://github.com/paradigmxyz/solar --locked
```
- From a Git checkout:
```bash
git clone https://github.com/paradigmxyz/solar
cd solar
cargo install --locked --path crates/solar
```

Once installed, check out the available options:

```bash
solar -h
```

Here's a few examples:

```bash
# Compile a single file and emit ABI to stdout.
solar Counter.sol --emit abi

# Compile a contract through standard input (`-` file).
echo "contract C {}" | solar -
solar - <
Licensed under either of Apache License, Version
2.0
or MIT license at your option.



Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in these crates by you, as defined in the Apache-2.0 license,
shall be dual licensed as above, without any additional terms or conditions.