Декларативный язык схем, который генерирует типобезопасные модели данных и RPC-код для TypeScript, Python, Java, Go, C++ и других языков из одного файла .skir.
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
Скачайте готовый бинарный файл protoc со страницы релизов на GitHub
- 2
Пройдите обучающие материалы для начала работы в руководстве разработчика
Что важно знать
- В метаданных лицензия указана как NOASSERTION, поэтому условия лицензии неясны.
- Последний коммит в ветке main может перестать работать из-за несовместимых изменений, поэтому для стабильных сборок зафиксируйте версию релиза.
- Пользователям C++ и всем, кому нужно изменить код, придётся собирать 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-фреймворк с генератором кода для создания совместимых клиентов и серверов на множестве языков программирования.
Компактное, удобное для чтения представление данных JSON, которое сокращает расход токенов при передаче структурированных данных в промпты LLM.
TypeScript-трансформер, который на этапе сборки превращает обычные типы TypeScript в runtime-валидаторы, JSON-сериализаторы, кодеки protobuf и генераторы случайных данных.
C++-фреймворк для RPC на базе Workflow от Sogou с поддержкой протоколов SRPC, bRPC, Thrift и tRPC в Linux, macOS и Windows.
Кроссплатформенная библиотека сериализации, позволяющая читать бинарные данные напрямую, без предварительного разбора или распаковки.