Skip to main content
Version: latest

Connector Build Troubleshooting

Multiplatform builds

Connectors on the Hub can be published associated with multiple targets so they can be run multiple platforms. This can be accomplished by building cdk on the same target it's intended for, or cross compiling one target from another platform. Compiling for one target while on another target can be complex, so this troubleshooting section provides added target toolchain support information for some common platform/target combinations.

MacOS

Build command for local builds, if cdk build does not work, explicitly specify the target:

cdk build --target aarch64-apple-darwin

Ubuntu or Debian based Linux Distributions

Build prerequisites for x86-unknown-linux-musl on Ubuntu from an x86-unknown-linux-gnu environment.

System packages:

sudo apt install build-essential musl-tools

Build command to build and test locally, instead of 'cdk build', use the following:

CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_LINKER=x86_64-linux-musl-gcc cdk build

Other rust cargo cross-platform build toolchains

Connector projects are rust projects, and different choices exist for cross compilation. A project connector binary build by a rust toolchain can be published by cdk with a --no-build flag. Different cross compilation projects for rust include:

For a working example, see the connector-publish github workflow.

Windows, WSL, WSL2

Fluvio and cdk are supported for windows only though WSL2. WSL2 often installs Ubuntu as the default Linux distribution. See the Ubuntu section for more build troubleshooting.

Infinyon Cloud Certified Connectors

Infinyon Certified connectors are built for the aarch64-unknown-linux-musl target.

To build and publish for the cloud, InfinyOn often uses a connector-publish github workflow.