# 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, application services should implement the [`service.wit`](./service.wit) interfaces and unit tests compiled to Wasm should implement the [`unit-tests.wit`](./unit-tests.wit) interfaces. ## Generation of the WIT files These files are generated by the [`wit-generator`](../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.