Skip to content

Releases: brandonkramer/ipc

v0.2.1

Choose a tag to compare

@brandonkramer brandonkramer released this 05 Jun 23:22

Full Changelog: v0.2.0...v0.2.1

v0.2.0

Choose a tag to compare

@brandonkramer brandonkramer released this 31 May 19:14

Summary

Adds local peer authorization for Unix socket and named-pipe connections.

New API

  • PeerFromConn(conn) — derive caller identity from a local transport connection
  • PeerContextIsLocal, CanRead, CanWrite authorization helpers
  • TrustedPeer() — in-process trusted caller context
  • PeerLevelUnknown, Local, Trusted
  • ErrAccessDenied, ErrUnsupportedConn

Platform support: Linux (SO_PEERCRED), macOS (LOCAL_PEERCRED / LOCAL_PEERPID), Windows stub (local for any non-nil conn), other Unix fallback.

Test plan

  • go test ./...

v0.1.0

Choose a tag to compare

@brandonkramer brandonkramer released this 31 May 18:50

Initial public release of the ipc module.

Features

  • Cross-platform local transport via [Addr]: Unix domain sockets and Windows named pipes
  • [Listen], [Dial], [DialTimeout], and [DialRetry] for startup race tolerance
  • Low-level helpers: [ListenUnix], [ListenPipe], [PipeName]
  • Detached child spawn via [SetDetach]
  • Optional HTTP-over-Unix: [RunUnixHTTP], [UnixHTTPClient], JSON handler helpers
  • Injectable unix hooks for deterministic tests

Tooling

  • CI workflow, lefthook, golangci-lint, ./scripts/check.sh
  • 100% statement coverage on Unix builds

Install

go get github.com/brandonkramer/ipc@v0.1.0