High-performance telemetry codec library and CLI for Echo VR session data.
Module: github.com/echotools/tape
go get github.com/echotools/tapetapedeck is the command-line tool for working with tape files.
go install github.com/echotools/tape/cmd/tapedeck@latestconvert — Batch-convert .echoreplay files to .tape format.
Supports parallel workers, recursive directory scanning, glob patterns, dry-run mode, and progress bars.
tapedeck convert *.echoreplay # convert files in place
tapedeck convert -r -o out/ ./replays # recursive, output to out/
tapedeck convert --workers 8 *.echoreplayshow — Display tape file contents (header, frames, footer). Output formats: text, json, summary. Optional event filtering.
tapedeck show capture.tape
tapedeck show --format json capture.tape
tapedeck show --events capture.tapereplay — Serve a tape file over HTTP, emulating Echo VR API endpoints (/session, /player_bones) at the original capture rate.
tapedeck replay capture.tape
tapedeck replay --addr :6721 --rate 2.0 capture.tapepkg/
├── codec/ # File format readers/writers (.tape, .echoreplay)
├── conversion/ # Format conversion utilities
├── events/ # Event detection algorithms
└── processing/ # Frame processing pipeline
| Property | v2 (current) | v1 (legacy) |
|---|---|---|
| Envelope | telemetry.v2.Envelope oneof |
Raw protobuf messages |
| Footer | Frame count, duration, keyframe/event indexes | None |
| Spatial | spatial.v1 float32 (~73.5% smaller) |
repeated double (64-bit) |
| Extension | .tape |
.tape / .nevrcap |
EchoReplay (.echoreplay) — ZIP-compressed JSON, legacy format from the game engine.
go build ./... # build all
go test -race ./... # tests with race detector
go test -bench=. -benchmem ./... # benchmarks
go vet ./... # static analysis- nevr-proto — Protobuf definitions (BSR:
buf.build/echotools/nevr-api) - nevr-agent — Recording and streaming CLI
See LICENSE file for details.