# Valida Compiler Toolchain

We are excited to announce [the 0.7.0-alpha release](https://github.com/lita-xyz/valida-releases/releases/tag/v0.7.0-alpha) of the Valida Compiler Toolchain, designed to compile Rust and C programs to run on the Valida zk-VM. This package includes:

* **Valida Rust Compiler:** This compiler converts Rust programs to Valida-compatible code.
* **Valida C Compiler:** This compiler converts C programs to Valida-compatible code.
* **Valida zk-VM:** A virtual machine for executing and verifying Valida programs.

***

## What You Can Do:

With this package, you can:

1. **Compile Rust Programs:** Convert your Rust code into Valida-compatible programs using the included Rust to Valida compiler toolchain.
2. **Compile C Programs:** Convert your C code into Valida-compatible programs using the included C to Valida compiler.
3. **Run and Verify Programs:** Execute your programs on the Valida zk-VM, and create and verify succinct proofs of execution.
4. **Test and Debug:** Explore the capabilities and limitations of both the compiler and the VM in this alpha release.

***

## Installation

There are [installation methods](/lita-documentation/quick-start/installation-and-system-requirements.md) available for the most widely used platforms, including Windows, Linux, and MacOS. Currently, Docker is required for platforms other than x86\_64 Linux. See [the installation methods](/lita-documentation/quick-start/installation-and-system-requirements.md) and follow one of them before continuing to the instructions below.

***

## Benchmarks

Here are some reports on benchmarks that we have run comparing the proving performance of Valida to RISC Zero, Jolt and SP1:

* [May 2024: recursive and iterative Fibonacci, SHA-256](/lita-documentation/architecture/benchmarks.md)

These benchmarks indicate that Valida is an industry leading competitor in terms of speed and efficiency of generating succinct knowledge proofs.

***

## Important Caveats

This software is in its alpha stage and has several limitations:

### Compiler Limitations:

* Floating-point operations are partially supported, using software emulation, which will tend to be slow.
* 64-bit integers are partially supported. Some arithmetic operations may be buggy.

### zk-VM Limitations:

* Some constraints are still missing or incorrect, allowing some false statements to be proven, pending resolution of these issues, which are actively being worked on.
* The VM does not yet produce zero-knowledge proofs. Support for the zero knowledge property is planned.

***

## Conclusion:

The Valida Compiler Toolchain offers exciting possibilities for compiling and running Rust and C programs on the Valida zk-VM. While this alpha release has limitations, it provides a solid foundation for future developments. We encourage you to test the toolchain, provide feedback, and contribute to its evolution.

For more information or support, visit our website or contact our team directly.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://lita.gitbook.io/lita-documentation/quick-start/valida-compiler-toolchain.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
