Skip to content

Commit 4ee7470

Browse files
committed
Add scylla
1 parent 9d476f5 commit 4ee7470

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

projects.markdown

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ on using Lean for verifying Rust programs translated by Aeneas.
4545

4646
## Eurydice
4747

48-
Eurydice is a compiler from (a subset of) Rust to C. The purpose of Eurydice is to provide a
48+
[Eurydice](https://github.com/AeneasVerif/eurydice) is a compiler from (a subset of) Rust to C. The purpose of Eurydice is to provide a
4949
backwards-compatibility story as the verification ecosystem gradually
5050
transitions to Rust. New programs can be written in Rust, in turn making them
5151
safer and easier to verify; but for legacy environments that cannot yet take a
@@ -65,3 +65,21 @@ from Rust down to C code. About half of these passes were already implemented
6565
for KaRaMeL, the rest of the passes reuse the KaRaMeL infrastructure but were
6666
freshly written for Eurydice.
6767

68+
## Scylla
69+
70+
[Scylla](https://github.com/AeneasVerif/scylla) is a tool for translating highly regular C code to safe Rust. The goal
71+
of Scylla is to help with the transition from legacy C code to Rust projects.
72+
To benefit from the infrastructure in C projects (CI, regression and performance
73+
testing), users are expected to progressively rewrite their C code until
74+
it fits the C subset supported by Scylla.
75+
76+
Scylla relies on the Clang frontend to parse C code before translating it to Rust.
77+
Additionally, users can provide annotations in the C source code to, e.g., specify
78+
that a tagged union should be translated to a Rust abstract datatype, or that a
79+
C struct should be translated to a Rust tuple.
80+
81+
As of July 2025, Scylla is able to translate parts of the HACL\* and SymCrypt
82+
cryptographic libraries, as well as the CBOR binary parser from EverParse, and
83+
the core compression algorithm of bzip2, all of them requiring different levels
84+
of manual C source rewritings and annotations.
85+

0 commit comments

Comments
 (0)