# WIT files for Linera applications
These [WIT files](https://component-model.bytecodealliance.org/design/wit.html) define the
interface that Linera applications compiled to [WebAssembly (Wasm)](https://webassembly.org) must
adhere to. Application contracts should implement the [`contract.wit`](./contract.wit) interfaces,
and application services should implement the [`service.wit`](./service.wit) interfaces.
## Generation of the WIT files
These files are generated by the [`wit-generator`](../../linera-execution/src/bin/wit_generator.rs) binary, and the
following command can be used to build the binary and run it to generate the files:
```
cargo run --bin wit-generator
```
These files could be generated automatically when building `linera-sdk`, but with the current code
organization it would be hard to do because the tool has to be compiled separately first. Having
them here also serves as both a reference point for reading about the interfaces as well as a place
to download them to use with other WIT-compatible languages without having to install Rust.
There is a [continuous integration job](../../.github/workflows/rust.yml) that ensures that these
files are up-to-date.