Repolode
protocolbuffers

protocolbuffers/protobuf

Независимый от языка и платформы формат и набор инструментов Google для сериализации структурированных данных: компилятор protoc и среды выполнения для множества языков.

Звёзды
72,154
Форки
16,358
Открытые issues
371
Последний коммит
23 часа назад

Что это?

Protocol Buffers (protobuf) — механизм сериализации структурированных данных, не зависящий от языка программирования и платформы. Разработчики описывают данные в файлах .proto, а компилятор protoc генерирует код для чтения и записи этих сообщений на целевом языке.

В репозитории находятся компилятор протокола, написанный на C++, среда выполнения для C++ и основные файлы .proto, поставляемые вместе с проектом. Библиотеки для Java, Python, Objective-C, C#, Ruby, PHP и других языков находятся в подкаталогах или связанных соседних репозиториях, например protobuf-go и protobuf-javascript. В релизах доступны готовые бинарные файлы protoc для пользователей, не работающих с C++, а инструкции по настройке Bazel, Bzlmod и WORKSPACE включены в документацию.

Проект широко используется как формат обмена данными в RPC-системах и как компактная альтернатива текстовым форматам для хранения структурированных записей.

Ключевые возможности

  • 01Описывает схемы сообщений в независимых от языка файлах .proto.
  • 02protoc генерирует код сериализации для нескольких целевых языков.
  • 03Предоставляет среды выполнения для C++, Java, Python, Go, C#, Ruby и других языков.
  • 04Готовые бинарные файлы protoc публикуются в релизах на GitHub.
  • 05Поддерживает сборки с Bazel, Bzlmod и устаревшей системой WORKSPACE.

Сценарии использования

  • Определение контрактов данных, общих для сервисов на разных языках.
  • Сериализация запросов и ответов RPC для API в стиле gRPC.
  • Хранение компактных структурированных записей, для которых текстовый формат был бы слишком объёмным или медленным при разборе.

Быстрый старт

  1. 1

    Скачайте готовый бинарный файл protoc со страницы релизов на GitHub

  2. 2

    Пройдите обучающие материалы для начала работы в руководстве разработчика

Что важно знать

  • В метаданных лицензия указана как NOASSERTION, поэтому условия лицензии неясны.
  • Последний коммит в ветке main может перестать работать из-за несовместимых изменений, поэтому для стабильных сборок зафиксируйте версию релиза.
  • Пользователям C++ и всем, кому нужно изменить код, придётся собирать protoc из исходного кода, что требует дополнительных усилий.

В подборках

Темы

#serialization#rpc#protocol-compiler#code-generation#cross-language#data-format#marshalling#protobuf#protobuf-runtime#protoc

Частые вопросы

Что такое protobuf?
Независимый от языка и платформы формат и набор инструментов Google для сериализации структурированных данных: компилятор protoc и среды выполнения для множества языков. Protocol Buffers (protobuf) — механизм сериализации структурированных данных, не зависящий от языка программирования и платформы. Разработчики описывают данные в файлах .proto, а компилятор protoc генерирует код для чтения и записи этих сообщений на целевом языке.
protobuf можно использовать бесплатно? Какая у него лицензия?
protobuf распространяется с открытым исходным кодом под лицензией Other. Перед использованием в коммерческих продуктах проверьте условия лицензии.
protobuf всё ещё поддерживается?
Активно поддерживается. Последний коммит в protobuf — 5 нояб. 2026 г..
Для чего можно использовать protobuf?
Определение контрактов данных, общих для сервисов на разных языках. Сериализация запросов и ответов RPC для API в стиле gRPC. Хранение компактных структурированных записей, для которых текстовый формат был бы слишком объёмным или медленным при разборе.
Как установить protobuf?
Скачайте готовый бинарный файл protoc со страницы релизов на GitHub Пройдите обучающие материалы для начала работы в руководстве разработчика
Где скачать protobuf?
Исходный код и инструкции по установке — на GitHub: https://github.com/protocolbuffers/protobuf

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Декларативный язык схем, который генерирует типобезопасные модели данных и RPC-код для TypeScript, Python, Java, Go, C++ и других языков из одного файла .skir.

317+1 за неделю10TypeScriptMITАктивно поддерживаетсяОбновлён 10 дней назад

Независимый от языка RPC-фреймворк с генератором кода для создания совместимых клиентов и серверов на множестве языков программирования.

11 тыс.+6 за неделю4,1 тыс.C++Apache-2.0Обновлён позавчера

Компактное, удобное для чтения представление данных JSON, которое сокращает расход токенов при передаче структурированных данных в промпты LLM.

25,6 тыс.+38 за неделю1,1 тыс.TypeScriptMITАктивно поддерживаетсяОбновлён 5 дней назад

TypeScript-трансформер, который на этапе сборки превращает обычные типы TypeScript в runtime-валидаторы, JSON-сериализаторы, кодеки protobuf и генераторы случайных данных.

6 тыс.+4 за неделю233TypeScriptMITАктивно поддерживаетсяОбновлён позавчера

Кроссплатформенная библиотека сериализации, позволяющая читать бинарные данные напрямую, без предварительного разбора или распаковки.

26,6 тыс.+21 за неделю3,7 тыс.C++Apache-2.0Обновлён позавчера