253 Commits

Author SHA1 Message Date
Igor Sirotin
1dc549d1d7
refactor: extract libwaku cgo bridge into internal/ffi (#114)
* 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>

* refactor: move libwaku bridge into internal/ffi/libwaku subpackage

One subpackage per C library so a binary links exactly the libraries it
imports: libwaku and liblogosdelivery carry overlapping symbols and must never
link together (until logos-delivery#3851). With the package named libwaku the
Waku* prefixes became stutter, so the exported primitives drop them
(libwaku.New/Start/RelayPublish/...). internal/ffi keeps an umbrella doc.go
stating the rule.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-06-10 19:54:36 +01:00
Igor Sirotin
4fd33b6121
refactor: adopt golang-standards/project-layout (#111)
* refactor: adopt golang-standards/project-layout

Move the legacy kernel wrapper `waku/*` to `pkg/kernel/*` and rename its
package `waku` -> `kernel`; nothing outside the package imported it, so this is
a mechanical import-path/prefix change. Update the relocated Makefile's
relative dep path, the legacy CI workflows (CI/endurance/repeated) build paths,
README, and .gitignore accordingly (preserving the libwaku-cache CI from #109).

Add scaffolding for the upcoming Messaging API work: `internal/ffi` (cgo
bridge), `pkg/messaging` (high-level Node API), and `examples/`. Document
`pkg/kernel` as legacy until logos-delivery#3851 consolidates the C libraries.

Also stop tracking the accidentally-committed `waku-bindings` build artifact
and gitignore the kernel build output.

No behavior change.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* chore: cleanup

* fix: repair references to removed utils package

nwaku_test_utils.go now uses pkg/kernel/utils.GetRSSKB; the memory_record
tool is self-contained (local helpers, missing mutex restored).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-10 10:13:55 +01:00
Igor Sirotin
0a84f0fb7b
ci: add PR-gate workflow + fix module path (#109)
* chore: rename module path to logos-delivery-go-bindings

The module path still read `logos-messaging-go-bindings`, mismatching the
repository name. Rename it to `github.com/logos-messaging/logos-delivery-go-bindings`
and update all in-repo imports. gofmt re-sorts a few import blocks as a result
(plus two files that were already unformatted on master).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* ci: add PR-gate workflow and golangci-lint config

The repo had no `on: pull_request` CI (only workflow_dispatch + nightly
schedule), so nothing validated PRs. Add `.github/workflows/pr.yml` that
builds libwaku and runs `go build`, `go vet`, golangci-lint, and a test-compile
pass on every PR. Add a baseline `.golangci.yml` (standard linters + gofmt).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* ci: scope golangci-lint to new code via new-from-merge-base

Run the full `standard` linter set but only report findings introduced since
the merge-base with master, so the legacy kernel wrapper's pre-existing issues
(unchecked defer-Close, dead helpers) don't drown the gate while new code still
gets full coverage. Fetch origin/master so the base ref is available in CI.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* ci: clone logos-delivery outside vendor/ and build in module mode

`go build` failed in CI because cloning logos-delivery into `vendor/` put Go
into vendor mode against an inconsistent `vendor/modules.txt`. Clone the
checkout into `.logos-delivery` instead and set `GOFLAGS=-mod=mod` so the gate
always builds in module mode.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* ci: use golangci-lint-action@v7 for golangci-lint v2

v6 of the action rejects golangci-lint v2 versions ("v2 is not supported by
golangci-lint-action v6"). Bump to v7.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* ci: cache libwaku, gate go mod tidy, rename LMN_DIR

- Rename LMN_DIR -> LOGOS_DELIVERY_DIR across the PR-gate and nightly
  workflows, the waku Makefile, and the build docs.
- Cache the built logos-delivery kernel keyed on its upstream HEAD SHA,
  skipping the clone + libwaku build while that commit is unchanged.
- Add a "go mod tidy is clean" step that fails if go.mod/go.sum drift.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-09 23:04:57 +01:00
Darshan
ac6f8a5096
chore: align with logos-delivery rename and v0.38.0-beta (#105) 2026-02-27 21:47:05 +05:30
Igor Sirotin
95be7e9319
chore: update license files to comply with Logos licensing requirements (#104) 2026-02-06 10:37:23 +01:00
Darshan
d29cc2c463
Merge pull request #102 from logos-messaging/daily_ci
fix: local build, tests, and daily CI
2026-01-08 23:28:26 +05:30
darshankabariya
2f6904edd1
update accordingl to suggestion 2026-01-08 23:27:46 +05:30
darshankabariya
4c6f87e62d
chore: deprecated go-waku 2025-12-23 02:40:09 +05:30
darshankabariya
c500c6d247
chore: deprecated go-waku 2025-12-23 02:21:12 +05:30
darshankabariya
79f94a234a
chore: deprecated go-waku 2025-12-23 01:46:21 +05:30
darshankabariya
0f47d57aa8
chore: deprecated go-waku 2025-12-23 01:23:45 +05:30
darshankabariya
56383131f2
chore: deprecated go-waku 2025-12-22 18:52:43 +05:30
darshankabariya
9f6e9ac839
chore: update accordings to rename 2025-12-22 18:23:02 +05:30
darshankabariya
cc70f9b695
chore: update accordings to rename 2025-12-22 17:55:04 +05:30
darshankabariya
284bbbc798
chore: update accordings to rename 2025-12-22 17:37:36 +05:30
darshankabariya
e774350a9e
chore: update accordings to rename 2025-12-22 17:21:52 +05:30
darshankabariya
4f38e24337
chore: update accordings to rename 2025-12-22 17:16:51 +05:30
darshankabariya
a600695118
chore: update accordings to rename 2025-12-22 15:13:25 +05:30
darshankabariya
3b704e93c4
chore: update accordings to rename 2025-12-22 14:45:12 +05:30
darshankabariya
97abc293cb
chore: update accordings to rename 2025-12-22 14:29:52 +05:30
darshankabariya
c4037c9289
chore: deprecated go-waku 2025-12-22 14:15:00 +05:30
darshankabariya
d698a6d1ff
chore: update accordings to rename 2025-12-22 13:32:40 +05:30
darshankabariya
0f4edc1143
chore: update accordings to rename 2025-12-22 12:53:49 +05:30
darshankabariya
bb454ae748
chore: update accordings to rename 2025-12-20 02:08:25 +05:30
darshankabariya
9ba1263350
chore: update accordings to rename 2025-12-20 02:05:09 +05:30
darshankabariya
20676f7d01
chore: update accordings to rename 2025-12-20 01:52:47 +05:30
darshankabariya
02c9a6afa6
chore: update accordings to rename 2025-12-20 01:11:10 +05:30
darshankabariya
cdad67ee80
chore: daily ci improvement 2025-12-20 00:14:00 +05:30
darshankabariya
01b58d79f0
chore: daily ci improvement 2025-12-19 15:58:52 +05:30
darshankabariya
099ca17868
chore: daily ci improvement 2025-12-19 14:43:52 +05:30
darshankabariya
576c379ab2
chore: update accordings to rename 2025-12-19 14:09:28 +05:30
darshankabariya
300b4fbed5
chore: daily ci improvement 2025-12-16 18:28:51 +05:30
darshankabariya
4ca0da806c
chore: daily ci improvement 2025-12-16 17:33:52 +05:30
darshankabariya
c50de8cbc0
chore: daily ci improvement 2025-12-16 17:15:06 +05:30
Darshan
555b747d26
Merge pull request #101 from logos-messaging/rename_alignment 2025-12-16 16:12:34 +05:30
darshankabariya
433c4a90f4
chore: align with rename 2025-12-16 03:06:15 +05:30
Ivan FB
57155dfe6e
Merge pull request #100 from logos-messaging/unittest_
chore: unittest failure & align renames
2025-12-15 19:00:34 +01:00
darshankabariya
48758bec78
chore: resolved TestConnectedPeersInfo 2025-12-15 01:09:46 +05:30
Darshan
c1dfce50bf
Merge pull request #98 from logos-messaging/adapt-for-nim-ffi
adapt nwaku.go to latest nim-ffi ctx callback and userData go first
2025-12-14 01:37:35 +05:30
Ivan Folgueira Bande
de7d4cf3c9
chore: waku-go-bindings -> logos-messaging-go-bindings 2025-12-12 22:56:00 +01:00
Ivan Folgueira Bande
3a7b42d93c
rm ntp and wall from timesource 2025-12-12 22:54:35 +01:00
Ivan Folgueira Bande
00a74606d3
adding timesource package 2025-12-12 22:54:28 +01:00
Ivan Folgueira Bande
5ec2ab11de
waku/Makefile now assumes lib already exists 2025-12-12 22:54:20 +01:00
Ivan Folgueira Bande
3d5e8e550b
chore: waku-go-bindings -> logos-messaging-go-bindings 2025-12-12 22:48:53 +01:00
Ivan Folgueira Bande
9a9a9e5c88
update go module name 2025-12-12 22:27:02 +01:00
Ivan Folgueira Bande
8c92ab1daf
adapt nwaku.go to latest nim-ffi ctx callback and userData go first 2025-12-12 17:41:02 +01:00
Fabiana Cecin
31fb882511
fix: TestStressStoreQuery5kMessagesWithPagination (#70) 2025-11-10 07:00:51 -03:00
Igor Sirotin
aa64c47d2b
chore: use externally provided nwaku (#95)
* chore: use externally provided nwaku

The fundamental idea is that the nwaku repository should be provided beforehand
before building waku-go-bindings

* fix: include libwaku with brackets

---------

Co-authored-by: Ivan FB <128452529+Ivansete-status@users.noreply.github.com>
2025-10-30 10:59:13 +00:00
Fabiana Cecin
7b46909177
Fix tabs vs. spaces ident 2025-10-21 12:19:45 -03:00
Fabiana Cecin
68eca51a2e
fix test TestStressStoreQuery5kMessagesWithPagination (#70) 2025-10-21 12:14:21 -03:00