
Security News
OpenClaw Skill Marketplace Emerges as Active Malware Vector
Security researchers report widespread abuse of OpenClaw skills to deliver info-stealing malware, exposing a new supply chain risk as agent ecosystems scale.
github.com/aperturerobotics/common
Advanced tools
Unified protobuf code generation for Go, TypeScript, C++, and Rust with WASM.
This repository provides the aptre CLI — a single tool that generates protobuf code for four languages without requiring you to install protoc, protoc plugins, or language-specific toolchains. Everything runs via embedded WebAssembly modules using wazero.
.proto files| Language | Message Types | RPC Services | Plugin |
|---|---|---|---|
| Go | *.pb.go | *_srpc.pb.go | protobuf-go-lite |
| TypeScript | *.pb.ts | *_srpc.pb.ts | protobuf-es-lite |
| C++ | *.pb.cc/h | *_srpc.pb.hpp/cpp | Built-in protoc + starpc |
| Rust | *.pb.rs | *_srpc.pb.rs | prost (WASI) + starpc |
The Rust code generation uses an embedded WASI build of protoc-gen-prost, meaning you don't need Cargo, rustc, or any Rust toolchain installed to generate .pb.rs files. The prost plugin runs entirely within the wazero WebAssembly runtime alongside protoc itself.
This is powered by go-protoc-gen-prost, which embeds a ~600KB WASM binary that implements the full prost protobuf code generator.
Given a simple proto file:
syntax = "proto3";
package echo;
message EchoMsg {
string body = 1;
}
The generated echo.pb.rs:
// @generated
// This file is @generated by prost-build.
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EchoMsg {
#[prost(string, tag="1")]
pub body: ::prost::alloc::string::String,
}
See starpc for a complete example.
# Run directly (no install needed)
go run github.com/aperturerobotics/common/cmd/aptre@latest generate
# Or install globally
go install github.com/aperturerobotics/common/cmd/aptre@latest
# Initialize Go module
go mod init github.com/yourorg/yourproject
syntax = "proto3";
package example;
// Import .proto files using Go-style import paths
import "github.com/aperturerobotics/controllerbus/controller/controller.proto";
message GetBusInfoResponse {
repeated controller.Info running_controllers = 1;
}
# Stage files for git (required for discovery)
git add -A
# Generate all languages
go run github.com/aperturerobotics/common/cmd/aptre@latest generate
# Or with verbose output
go run github.com/aperturerobotics/common/cmd/aptre@latest generate --verbose
| Command | Description |
|---|---|
generate | Generate protobuf code (Go, TypeScript, C++, Rust) |
generate --force | Regenerate all files, ignoring cache |
clean | Remove generated files and cache |
deps | Ensure all dependencies are installed |
lint | Run golangci-lint |
fix | Run golangci-lint with --fix |
test | Run go test |
test --browser | Run tests in browser with WebAssembly |
format | Format Go code with gofumpt |
outdated | Show outdated dependencies |
The aptre tool orchestrates code generation using embedded WebAssembly:
.proto files matching your targets (default: ./*.proto).protoc-manifest.json to skip unchanged files┌─────────────────────────────────────────────────────────────┐
│ aptre CLI │
├─────────────────────────────────────────────────────────────┤
│ wazero runtime │
├─────────────┬─────────────────────────┬─────────────────────┤
│ protoc.wasm │ protoc-gen-prost.wasm │ Native Plugins │
│ (parsing) │ (Rust output) │ (Go, TS, C++) │
└─────────────┴─────────────────────────┴─────────────────────┘
C++ protobuf files (.pb.cc and .pb.h) are generated alongside other outputs. Add vendor/ to your include path:
# CMakeLists.txt
include_directories(${PROJECT_SOURCE_DIR}/vendor)
#include "github.com/yourorg/yourproject/example/example.pb.h"
For StarPC C++ services, the *_srpc.pb.hpp files provide client/server stubs.
The generator uses sensible defaults but can be customized:
./*.proto)vendor/**).tools).protoc-manifest.json)Please open a GitHub issue with any questions or issues.
... or reach out on Matrix Chat or Discord.
MIT
FAQs
Unknown package
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Security researchers report widespread abuse of OpenClaw skills to deliver info-stealing malware, exposing a new supply chain risk as agent ecosystems scale.

Security News
Claude Opus 4.6 has uncovered more than 500 open source vulnerabilities, raising new considerations for disclosure, triage, and patching at scale.

Research
/Security News
Malicious dYdX client packages were published to npm and PyPI after a maintainer compromise, enabling wallet credential theft and remote code execution.