Initial commit: RouteWatch BGP stream monitor

- Connects to RIPE RIS Live stream to receive real-time BGP updates
- Stores BGP data in SQLite database:
  - ASNs with first/last seen timestamps
  - Prefixes with IPv4/IPv6 classification
  - BGP announcements and withdrawals
  - AS-to-AS peering relationships from AS paths
  - Live routing table tracking active routes
- HTTP server with statistics endpoints
- Metrics tracking with go-metrics
- Custom JSON unmarshaling to handle nested AS sets in paths
- Dependency injection with uber/fx
- Pure Go implementation (no CGO)
- Includes streamdumper utility for debugging raw messages
This commit is contained in:
2025-07-27 21:18:57 +02:00
commit 92f7527cc5
24 changed files with 3587 additions and 0 deletions

24
Makefile Normal file
View File

@@ -0,0 +1,24 @@
export DEBUG = routewatch
.PHONY: test fmt lint build clean run
all: test
test: lint
go test -v ./...
fmt:
go fmt ./...
lint:
go vet ./...
golangci-lint run
build:
go build -o bin/routewatch cmd/routewatch/main.go
clean:
rm -rf bin/
run: build
./bin/routewatch