Technology Stack
Analysis Date: 2026-02-05
Languages#
Primary:
- Go 1.24.7 - Core plugin development language for all protoc generators
Secondary:
- TypeScript - TypeScript HTTP client code generation target
- Protocol Buffers (Proto3) - IDL for service and message definitions
- YAML/JSON - Configuration and output formats for OpenAPI specifications
Runtime#
Environment:
- Go runtime 1.24.7 (distributed as compiled binaries)
- Node.js (optional) - For TypeScript client examples and demos
Package Manager:
- Go Modules (go.mod/go.sum)
- Lockfile: Present (go.sum with 44 dependencies tracked)
Frameworks#
Core:
- Protocol Buffers (google.golang.org/protobuf) v1.36.11 - Foundation for message serialization and code generation
- protogen (google.golang.org/protobuf/compiler/protogen) - Official Go protoc plugin framework used by all generators
- protovalidate (buf.build/gen/go/bufbuild/protovalidate) - Validation framework for request body and header validation
Code Generation:
- protoc-gen-go-http - Custom HTTP handler generator built on protogen
- protoc-gen-go-client - Custom Go HTTP client generator
- protoc-gen-ts-client - Custom TypeScript HTTP client generator
- protoc-gen-openapiv3 - Custom OpenAPI v3.1 specification generator
Testing:
- Go testing (built-in testing package) - Unit and integration tests
- testify v1.11.1 - Assertion and mocking library for tests
Build/Dev:
- Buf CLI (buf.build) - Modern protobuf build system for dependency management and validation
- golangci-lint - Comprehensive Go code quality and linting
- goreleaser - Multi-platform binary building and release automation
- make - Build orchestration (Makefile)
OpenAPI & Documentation:
- libopenapi v0.33.0 (github.com/pb33f/libopenapi) - OpenAPI v3.1 document parsing and generation
- ordered-map/v2 v2.3.0 - Preserves field ordering in OpenAPI specifications
Key Dependencies#
Critical:
- google.golang.org/protobuf v1.36.11 - Protocol Buffer core library and compiler framework (nonnegotiable)
- github.com/pb33f/libopenapi v0.33.0 - OpenAPI document rendering and schema generation
- buf.build/gen/go/bufbuild/protovalidate v1.36.11 - Validation rule definitions for body/header validation
Infrastructure:
- go.yaml.in/yaml/v4 v4.0.0-rc.4 - YAML parsing and generation for OpenAPI output
- go.yaml.in/yaml/v2 v2.4.2 - Indirect YAML dependency
- sigs.k8s.io/yaml v1.6.0 - Kubernetes-style YAML conversion (JSON/YAML interop)
- golang.org/x/sync v0.19.0 - Synchronization primitives for concurrent operations
- github.com/pb33f/jsonpath v0.7.1 - JSON path traversal (libopenapi dependency)
Utilities:
- github.com/buger/jsonparser v1.1.1 - Fast JSON parsing (transitive)
- github.com/bahlo/generic-list-go v0.2.0 - Generic list utilities (transitive)
Development:
- github.com/stretchr/testify v1.11.1 - Testing assertions and mocks
Configuration#
Environment:
- Build configuration via Makefile (
/Users/sebastienmelki/Documents/documents_sebastiens_mac_mini/Workspace/kompani/sebuf/Makefile) - Proto dependencies managed via
buf.yaml(/Users/sebastienmelki/Documents/documents_sebastiens_mac_mini/Workspace/kompani/sebuf/proto/buf.yaml) - Proto code generation via
buf.gen.yaml(/Users/sebastienmelki/Documents/documents_sebastiens_mac_mini/Workspace/kompani/sebuf/proto/buf.gen.yaml)
Key Configs Required:
- Go 1.24+ installed
- protoc (Protocol Buffer compiler) v25.1+
- Buf CLI (latest) for proto dependency management
- golangci-lint for code quality checks
- goreleaser for release builds
Build:
Makefile- Main build orchestration with targets: build, test, lint, fmt, publish.golangci.yml- golangci-lint configuration (strict rules, line length 120).testcoverage.yml- Test coverage thresholds (file: 70%, package: 80%, total: 85%).goreleaser.yml- Multi-platform binary building, Docker images, Homebrew taps, Linux packages
Platform Requirements#
Development:
- Go 1.24.7+
- protoc (Protocol Buffer compiler) 25.1+
- Buf CLI (latest)
- golangci-lint (latest)
- macOS, Linux, or Windows with standard build tools
Production/Distribution:
- No runtime dependencies (compiled Go binaries)
- Distributed as:
- Pre-built binaries (Linux, macOS, Windows; amd64, arm64, arm)
- Docker images (ghcr.io/sebastienmelki/protoc-gen-go-http, protoc-gen-openapiv3)
- Homebrew tap (macOS/Linux)
- Linux packages (deb, rpm, apk)
Stack analysis: 2026-02-05
