Компания Google раскрыла исходные коды Protocol Buffers — языка для обмена данными, используемого внутри большинства проектов Google. Данный шаг определен прежде всего тем, что в ближайшем будущем компания откроет коды множества других проектов, использующих именно Protocol Buffers.

Язык Protocol Buffers предназначен для кодирования различных типов данных и позиционируется в качестве альтернативы XML. В своей работе Google применяет тысячи различающихся форматов данных, необходимых для обмена сетевыми сообщениями между серверами, создания индекса записей в архивах, формирования картографических данных и т. п. При этом большинство данных структурированы. Использование же XML при таком гигантском объеме экономически не выгодно.

Protocol Buffers позволяет один раз задать структуру данных, а затем генерировать код для их чтения и записи из различных потоков и на различных языках. Можно даже изменить структуру данных без нарушения работы уже скомпилированных программ. Файлы с данными Protocol Buffers меньше по размеру в 3–10 раз и обрабатываются в 20–100 раз быстрее в сравнении с аналогичными XML-файлами.

Однако в некоторых задачах выбор XML оправдан. Так, использование Protocol Buffers для моделирования текстовых документов с языком разметки (например, HTML) окажется затруднительным, поскольку нельзя просто чередовать структурные элементы с текстом. Также XML относится к языкам, удобным для восприятия и редактирования человеком, — Protocol Buffers таковым не является.

Для загрузки доступны исходные тексты компилятора Protocol Buffers на Java, C++ и Python.