geiserx_ts_ffi 0.28.2

c ffi bindings for tailscale-rs
docs.rs failed to build geiserx_ts_ffi-0.28.2
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.

ts_ffi

C bindings to tailscale-rs.

tailscale.h is automatically generated in this directory when you cargo build. The library name is tailscalers (../target/*/libtailscalers.{a,so}).

A note on unsafe

This crate is the C FFI boundary, so it is where essentially all of the workspace's unsafe lives. That is inherent to the job: extern "C" entry points receive raw pointers and C strings from the caller, which Rust cannot prove valid, so dereferencing them is unavoidably unsafe. The rest of the workspace is overwhelmingly safe Rust — many crates carry #![deny(unsafe_code)] or #![forbid(unsafe_code)].

Within this crate the unsafe surface is kept honest: every pub unsafe extern "C" fn documents its caller contract in a # Safety doc section (see the module-level # Safety in lib.rs for the blanket invariants — non-null, initialized, CStr-valid), and every unsafe block carries a // SAFETY: comment naming the invariant it relies on. Raw-pointer reads are converted to safe Rust references/slices as early as possible so the logic runs in safe code. See CONTRIBUTING.md for the project-wide unsafe policy.