Igor Sirotin ec187d085d
refactor: extract libwaku cgo bridge into internal/ffi
Move the C preamble, cgo shims, and callback plumbing from pkg/kernel/nwaku.go
into internal/ffi/libwaku.go, where #111 scaffolded them to live. The bridge
exposes Go-typed Waku* primitives (handle in, strings out) and owns the
handle->event-handler registry, so pkg/kernel is now pure Go: WakuNode keeps
its full API, logging, and error texts, and just calls ffi.

Behavior is unchanged. Dropped four C shims that had no Go callers
(cGoWakuContentTopic, cGoWakuPubsubTopic, cGoWakuDefaultPubsubTopic,
cGoWakuLightpushPublish). CGO flags still come from the environment
(Makefile/CI untouched).

Part of #106.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-10 14:08:51 +03:00

9 lines
409 B
Go

// Package ffi holds the cgo bridge over the logos-delivery C libraries: the
// synchronous request/callback plumbing, the global event callback, and the
// handle registry. It exposes Go-typed primitives so the public packages
// (e.g. messaging) stay pure Go.
//
// Currently holds the Kernel API bridge (libwaku); the Messaging API bindings
// (over liblogosdelivery) land here in a follow-up.
package ffi