# Working with `externref`
You can also browse this source code online and clone the wasmtime
repository to run the example locally:
* [Rust](https://github.com/bytecodealliance/wasmtime/blob/main/examples/externref.rs)
* [C](https://github.com/bytecodealliance/wasmtime/blob/main/examples/externref.c)
* [C++](https://github.com/bytecodealliance/wasmtime/blob/main/examples/externref.cc)
[code]: https://github.com/bytecodealliance/wasmtime/blob/main/examples/externref.rs
This example shows how to pass opaque host references into and out of WebAssembly using `externref`.
## Wasm Source
```wat
{{#include ../examples/externref.wat}}
```
## Host Source
```rust
{{#include ../examples/externref.rs}}
```
```c
{{#include ../examples/externref.c}}
```
```cpp
{{#include ../examples/externref.cc}}
```