Native libraries don’t end at the FFI boundary. The harder questions start earlier: Where do the libraries come from? How do you distribute prebuilt binaries across platforms and architectures? How do you handle libraries that must be compiled from source? And how do you make all of this work reliably in CI and on a new developer’s machine?
Combining prebuilt and source-based dependencies in a single project creates compounding complexity across build orchestration, CI configuration, versioning, and reproducibility. The problems are distinct but interact: a versioning mismatch surfaces as a linker error, a missing platform binary breaks a CI job but not local builds.
Drawing on experience building B2B cross-platform applications for industrial measurement, I’ll walk through the practical challenges of native dependency management. Using Flutter Rust Bridge as a concrete integration point, I’ll compare a custom solution for downloading and integrating platform-specific binaries against using Conan as a dedicated package manager: what each approach handles well, and where each breaks down. The last mile decides: getting everything to link and run correctly across platforms.