#parser #slang

slang-rs

Rust bindings for the Slang Verilog parser

20 breaking releases

0.21.0 May 8, 2025
0.19.0 Apr 16, 2025
0.15.0 Feb 14, 2025
0.12.0 Nov 19, 2024

#1119 in Parser implementations

Download history 4753/week @ 2025-02-04 313/week @ 2025-02-11 271/week @ 2025-02-18 62/week @ 2025-02-25 249/week @ 2025-03-04 244/week @ 2025-03-11 752/week @ 2025-03-18 120/week @ 2025-03-25 235/week @ 2025-04-01 491/week @ 2025-04-08 841/week @ 2025-04-15 791/week @ 2025-04-22 202/week @ 2025-04-29 581/week @ 2025-05-06 499/week @ 2025-05-13 1658/week @ 2025-05-20

3,019 downloads per month
Used in 2 crates

Apache-2.0

47KB
1K SLoC

slang-rs

Parse SystemVerilog with Slang using a Rust API.

Note: the API is currently under development and is subject to frequent changes.

Prerequisite

First install the Slang parser. We recommend building it from source.

curl -LO "https://github.com/MikePopoloski/slang/archive/refs/tags/v6.0.tar.gz"
tar xzvf v6.0.tar.gz
cd slang-6.0
cmake -B build
cmake --build build -j8

This will take a few minutes. Then set an environment variable to specify the location of the Slang binary:

export SLANG_PATH=`realpath build/bin/slang`

Installation

Install Rust if you don't have it already:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Then clone this repository:

git clone https://github.com/xlsynth/slang-rs.git

To run the tests:

cd slang-rs
cargo test

Development

We use pre-commit as part of our CI pipeline.

If you haven't already installed pre-commit, you can do so with:

pip install pre-commit

Then install the pre-commit hooks for this repository with:

pre-commit install

The pre-commit hooks will run automatically when you attempt to commit code. You can also run pre-commit checks on-demand with:

pre-commit run

Dependencies

~7–18MB
~280K SLoC