Convert Protocol Buffers to any format

Transform your .proto files into JavaScript, TypeScript, JSON Schema, and more. Generate code, schemas, and documentation from your Protocol Buffer definitions.

Need to validate your proto files first? Check them at protolint.com
input.proto

Drag & drop a .proto file or paste content above

Select a format to automatically convert your proto file

C

C struct definitions with function declarations, proper typedefs, and standard headers

C#

C# classes with properties, data annotations, and nullable reference types

C++

C++ header files with class definitions and proper includes

Go

Go structs with JSON tags and protocol buffer field naming

Java

Java classes with builder pattern, getters/setters, and proper packaging

JavaScript

ES6 classes with validation and JSON serialization

JSON Schema

JSON Schema definition for validation

Python

Python dataclasses with type hints and validation

Ruby

Ruby classes with attribute accessors, JSON serialization, and snake_case naming

Rust

Rust structs with Serde serialization, Option<T> for optional fields, and Vec<T> for arrays

TypeScript

TypeScript interfaces with type safety

API

Integrate proto2any into your development workflow or CI/CD pipeline.

POST /api/convert
# JSON body
curl -X POST https://proto2any.com/api/convert \
  -H "Content-Type: application/json" \
  -d '{"content": "syntax = \"proto3\";\npackage example;", "format": "javascript"}'

# File upload
curl -X POST https://proto2any.com/api/convert \
  -F "file=@path/to/your.proto" \
  -F "format=typescript"
Response
{
  "success": true,
  "format": "javascript",
  "output": "/**\n * User class generated from proto definition\n */\nclass User {\n  constructor(data = {}) {\n    this.id = data.id ?? 0;\n    this.email = data.email ?? '';\n    // ... rest of the generated code\n  }\n}"
}