# Supported Languages

Currently, Tarmac leverages the Web Assembly Procedure Call ([waPC](https://wapc.io/)) to interact and run WASM Functions. As such, Tarmac is limited to languages that support both Web Assembly and the waPC protocol.

The below table outlines languages that are fully supported.

| Language       | waPC Guest Library                          | Caveats |
| -------------- | ------------------------------------------- | ------- |
| AssemblyScript | <https://github.com/wapc/as-guest>          |         |
| Go             | <https://github.com/wapc/wapc-guest-tinygo> |         |
| Rust           | <https://github.com/wapc/wapc-guest-rust>   |         |
| Swift          | <https://github.com/wapc/wapc-guest-swift>  |         |
| Zig            | <https://github.com/wapc/wapc-guest-zig>    |         |
