https://github.com/zink-lang/zink
Rustic programming language that targets the Ethereum Virtual Machine
https://github.com/zink-lang/zink
evm nova rust spartan wasm zk-snarks
Last synced: 5 months ago
JSON representation
Rustic programming language that targets the Ethereum Virtual Machine
- Host: GitHub
- URL: https://github.com/zink-lang/zink
- Owner: zink-lang
- License: gpl-3.0
- Created: 2023-06-17T18:37:30.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-04-22T15:41:17.000Z (6 months ago)
- Last Synced: 2025-05-14T07:56:02.366Z (5 months ago)
- Topics: evm, nova, rust, spartan, wasm, zk-snarks
- Language: Rust
- Homepage: https://zink-lang.org
- Size: 33.6 MB
- Stars: 159
- Watchers: 4
- Forks: 22
- Open Issues: 66
-
Metadata Files:
- Readme: README.md
- Contributing: docs/contributing/README.md
- License: LICENSE
- Security: docs/security.md
Awesome Lists containing this project
README
# The Zink Language
> [!CAUTION]
>
> This project is still under active development, please DO NOT use it in production.[![zink][version-badge]][version-link]
[![ci][ci-badge]][ci-link]
[![telegram][telegram-badge]][telegram-group]Welcome to the Zink Language! [Bounty issues](https://zink-lang.org/bounties) are now available, join the development of Zink by reading the [book](https://zink-lang.org/).
```rust
//! ERC20 Example (WIP)
#[zink::contract]
pub struct ERC20;#[zink::calls]
impl ERC20 {
/// VMs that zink supports
pub fn support() -> [zink::String; 4] {
["EVM", "WASM", "RISC-V", "...OTHER_VMS"]
}
}#[zink::interface]
impl ERC20 for ERC20 {
fn name() -> zink::String {
"Zink Language".to_string()
}
}
```- **Safe**: `rustc` monitors your code!
- **Efficient**: Efficient EVM bytecode from `rustc`, `wasm-opt`, and `zinkc`.
- **Modular**: Upload and download your contract components via `crates.io`.
- **Rusty**: All of the rust tools are available for your contracts!
Run `cargo install zinkup` to install the toolchain!
## Testing & Development
| Command | Description |
| ---------- | ---------------------- |
| `cargo cc` | Clippy all packages |
| `cargo tt` | Run all tests |
| `cargo be` | Build all examples |
| `cargo te` | Run tests for examples |We're using `cargo-nextest` for testing, the commands above are described in [.cargo/config.toml](.cargo/config.toml).
## Special Thanks
- [MegaETH](https://github.com/megaeth-labs) for the funding and trust!
- [revm](https://github.com/bluealloy/revm) for the EVM in rust!## LICENSE
GPL-3.0-only
[book]: https://zink-lang.org/
[telegram-badge]: https://img.shields.io/endpoint?label=chat&style=flat&url=https%3A%2F%2Fmogyo.ro%2Fquart-apis%2Ftgmembercount%3Fchat_id%3Dzinklang
[telegram-group]: https://t.me/zinklang
[version-badge]: https://img.shields.io/crates/v/zinkc
[version-link]: https://docs.rs/zinkc
[ci-badge]: https://img.shields.io/github/actions/workflow/status/clearloop/zink/main.yml
[ci-link]: https://github.com/clearloop/zink/actions/workflows/main.yml
[rustc-codegen]: https://doc.rust-lang.org/rustc/codegen-options/index.html
[wasm-opt]: https://github.com/WebAssembly/binaryen#binaryen-optimizations