<img align="right" width="150" height="150" top="100" src = "https://avatars.githubusercontent.com/u/138247979?s=400&u=cbf4b9e9da048899a947f08d92e030806d5bd50b&v=4"/>
# 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