https://github.com/brandonkramer/locdaemon
Generic local JSON-RPC daemon kit for Go: home layout, single-instance lock, accept loop, observe HTTP, and client helpers.
https://github.com/brandonkramer/locdaemon
daemon go golang ipc jrpc2 json-rpc library named-pipe unix-socket
Last synced: 14 days ago
JSON representation
Generic local JSON-RPC daemon kit for Go: home layout, single-instance lock, accept loop, observe HTTP, and client helpers.
- Host: GitHub
- URL: https://github.com/brandonkramer/locdaemon
- Owner: brandonkramer
- Created: 2026-06-01T18:22:01.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2026-06-05T23:22:34.000Z (about 1 month ago)
- Last Synced: 2026-06-06T01:13:53.556Z (30 days ago)
- Topics: daemon, go, golang, ipc, jrpc2, json-rpc, library, named-pipe, unix-socket
- Language: Go
- Size: 159 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# locdaemon
Generic local JSON-RPC daemon kit: home layout paths, single-instance lock, accept loop, observe HTTP, and client dial/spawn helpers.
## Install
From [pkg.go.dev](https://pkg.go.dev/github.com/brandonkramer/locdaemon):
```bash
go get github.com/brandonkramer/locdaemon
```
## Quick start
```go
ctx := context.Background()
err := runtime.Run(ctx, runtime.Config{
Home: home,
Layout: layout,
Assigner: myRPCAssigner,
Prepare: prepareHome,
OnReady: startBackgroundWork,
})
if err != nil {
return err
}
```
Client side:
```go
got, err := client.CallHome[string](ctx, home, layout, "status", nil, 5*time.Second)
if err != nil {
return err
}
```
## Development
Lefthook and golangci-lint are pinned in `go.mod` as **tools** (dev-only). Install git hooks once per clone:
```bash
make install-hooks
```
```bash
make check
make test
make lint
```