Interop
No serious toolchain gets to stay pure forever.
Eventually a package needs to:
- call into native code
- depend on a non-Riot library
- cross a runtime or language boundary
That is what this page is about.
Why interop needs its own page
Section titled “Why interop needs its own page”Interop is where elegant systems often get vague. The docs start pretending the boundary does not exist, and users are left to invent local hacks.
Riot should do the opposite:
- name the boundary
- explain when it matters
- keep the escape hatch explicit
The right mindset
Section titled “The right mindset”Use Riot-native workflows first.
Reach for interop when:
- the problem really crosses a language boundary
- a native dependency is the right tool
- FFI is a meaningful part of the package contract
That keeps the normal path clear without pretending foreign integration is rare or unimportant.
What belongs under interop
Section titled “What belongs under interop”This is the home for topics like:
- foreign dependencies
- native bindings
- FFI
- integrating Riot packages with code that originates outside the Riot ecosystem
It is not a sign of failure that these topics exist. It is a sign that Riot expects to be used in real systems.