No description
Find a file
Snider b334cb4909
All checks were successful
Security Scan / security (pull_request) Successful in 9s
Test / test (pull_request) Successful in 1m25s
fix(bundle): document why os.OpenFile is used instead of coreio in extractTarball
The coreio abstraction hardcodes file permissions (0644) and has no
OpenFile equivalent. os.OpenFile is needed here to preserve tar header
mode bits — executable binaries require 0755.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-17 16:23:35 +00:00
.core chore: add .core/ build and release configs 2026-03-06 18:52:37 +00:00
.forgejo/workflows ci: add Forgejo Actions test and security scan workflows 2026-02-23 03:28:08 +00:00
.idea chore: migrate Snider deps from github.com to forge.lthn.ai 2026-02-22 21:42:39 +00:00
docs docs: add human-friendly documentation 2026-03-11 13:02:39 +00:00
KB@4dcd7ea9fe test: add UEPS wire protocol tests (Phase 1) — 0% to 88.5% coverage 2026-02-19 23:44:09 +00:00
logging refactor: replace fmt.Errorf/os.* with go-log/go-io conventions 2026-03-16 20:38:55 +00:00
node fix(bundle): document why os.OpenFile is used instead of coreio in extractTarball 2026-03-17 16:23:35 +00:00
ueps refactor: replace fmt.Errorf/os.* with go-log/go-io conventions 2026-03-16 20:38:55 +00:00
.editorconfig chore: add Go repo norms (badges, contributing, lint, taskfile, editorconfig) 2026-02-23 06:45:43 +00:00
.gitignore chore: add .core/ and .idea/ to .gitignore 2026-03-15 10:17:50 +00:00
.golangci.yml chore: add Go repo norms (badges, contributing, lint, taskfile, editorconfig) 2026-02-23 06:45:43 +00:00
CLAUDE.md docs: add CLAUDE.md project instructions 2026-03-13 13:38:02 +00:00
CONTRIBUTING.md chore: add Go repo norms (badges, contributing, lint, taskfile, editorconfig) 2026-02-23 06:45:43 +00:00
go.mod chore: sync dependencies for v0.1.5 2026-03-16 22:18:29 +00:00
go.sum chore: sync dependencies for v0.1.5 2026-03-16 22:18:29 +00:00
README.md chore: add Go repo norms (badges, contributing, lint, taskfile, editorconfig) 2026-02-23 06:45:43 +00:00
SESSION-BRIEF.md docs: add session brief for expert agent work 2026-02-19 17:39:03 +00:00

Go Reference License: EUPL-1.2 Go Version

go-p2p

P2P mesh networking layer for the Lethean network. Provides Ed25519 node identity, an encrypted WebSocket transport with HMAC-SHA256 challenge-response handshake, KD-tree peer selection across four dimensions (latency, hops, geography, reliability score), UEPS wire protocol (RFC-021) TLV packet builder and reader, UEPS intent routing with a threat circuit breaker, and TIM deployment bundle encryption with Zip Slip and decompression-bomb defences.

Module: forge.lthn.ai/core/go-p2p Licence: EUPL-1.2 Language: Go 1.25

Quick Start

import (
    "forge.lthn.ai/core/go-p2p/node"
    "forge.lthn.ai/core/go-p2p/ueps"
)

// Start a P2P node
identity, _ := node.LoadOrCreateIdentity()
transport := node.NewTransport(identity, node.TransportConfig{ListenAddr: ":9091"})
transport.Start(ctx)

// Build a UEPS packet
pkt, _ := ueps.NewBuilder(ueps.IntentCompute, payload).MarshalAndSign(sharedSecret)

Documentation

Build & Test

go test ./...
go test -race ./...
go test -short ./...   # skip integration tests
go build ./...

Licence

European Union Public Licence 1.2 — see LICENCE for details.