Jump to content

Connect SuperML | Leeroopedia MCP: Equip your AI agents with best practices, code verification, and debugging knowledge. Powered by Leeroo — building Organizational Superintelligence. Contact us at founders@leeroo.com.

Implementation:Fede1024 Rust rdkafka Rdkafka Sys Crate Root

From Leeroopedia


Knowledge Sources
Domains FFI, Crate_Architecture, Build_System
Last Updated 2026-02-07 19:00 GMT

Overview

Crate root for the rdkafka-sys FFI package that re-exports low-level bindings, helper utilities, and type aliases while conditionally linking optional native dependencies.

Description

The rdkafka-sys crate root (lib.rs) serves as the entry point for the low-level FFI layer. It declares three submodules (bindings, helpers, types) and uses glob re-exports (pub use bindings::*, pub use helpers::*, pub use types::*) to expose all symbols directly from the crate root. It conditionally links external system crate dependencies (openssl-sys, sasl2-sys, libz-sys, curl-sys, zstd-sys, lz4-sys) via extern crate declarations gated behind Cargo features (ssl, gssapi, libz, curl, zstd, external-lz4). The module documentation covers version format, build features, known dependency issues, and Windows support notes.

Usage

This crate is a dependency of the higher-level rdkafka crate. Users rarely depend on it directly unless they need raw FFI access to librdkafka functions not wrapped by the safe API. Add it as a dependency when writing custom unsafe extensions or when the safe wrapper does not expose needed functionality.

Code Reference

Source Location

Signature

//! Low-level bindings to librdkafka
//! Version format: X.Y.Z+RX.RY.RZ (crate + librdkafka version)

#[cfg(feature = "ssl")]
extern crate openssl_sys;

#[cfg(feature = "gssapi")]
extern crate sasl2_sys;

#[cfg(feature = "libz")]
extern crate libz_sys;

#[cfg(feature = "curl")]
extern crate curl_sys;

#[cfg(feature = "zstd")]
extern crate zstd_sys;

#[cfg(feature = "external-lz4")]
extern crate lz4_sys;

pub mod bindings;
pub mod helpers;
pub mod types;

pub use bindings::*;
pub use helpers::*;
pub use types::*;

Import

// Direct dependency on rdkafka-sys
use rdkafka_sys::*;
// or selectively:
use rdkafka_sys::{RDKafkaErrorCode, RDKafka, RDKafkaConf};

I/O Contract

Inputs

Name Type Required Description
Cargo features Feature flags No Optional: ssl, gssapi, libz, curl, zstd, external-lz4
librdkafka native library Shared/static Yes Built by build.rs or dynamically linked

Outputs

Name Type Description
Public API surface All symbols from bindings, helpers, types Complete FFI interface to librdkafka

Usage Examples

Adding rdkafka-sys as Dependency

[dependencies]
rdkafka-sys = { version = "4.7", features = ["ssl", "libz"] }

Using Direct FFI Access

use rdkafka_sys::*;

unsafe {
    let version = rd_kafka_version();
    println!("librdkafka version: 0x{:08x}", version);
}

Related Pages

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment