Meta tags:
Headings (most frequently used words):
edit, navigation, tools, protocol, buffers, contents, overview, example, language, support, see, also, references, external, links, menu, personal, namespaces, views, contribute, print, export, languages,
Text of the page (most frequently used words):
the (32), #protocol (31), buffers (28), and (25), for (24), google (21), data (21), retrieved (18), github (18), polyline (16), protobuf (15), line (13), code (12), 2021 (11), with (10), october (10), edit (9), proto (9), that (9), point (9), example (9), wikipedia (8), format (8), this (7), use (7), 2022 (7), from (7), source (7), are (7), developers (6), links (6), languages (6), tools (6), serialization (6), formats (6), grpc (6), language (6), message (6), other (6), file (5), not (5), software (5), open (5), web (5), com (5), external (5), schema (5), field (5), license (4), page (4), create (4), description (4), free (4), 2016 (4), javascript (4), also (4), python (4), java (4), set_y (4), set_x (4), string (4), can (4), which (4), optional (4), each (4), label (4), required (4), names (4), used (4), about (3), available (3), using (3), item (3), navigation (3), articles (3), all (3), org (3), php (3), systems (3), flatbuffers (3), dart (3), implementation (3), system (3), third (3), party (3), prolog (3), 2017 (3), release (3), 2008 (3), see (3), provides (3), generator (3), point2 (3), point1 (3), protoc (3), include (3), called (3), messages (3), has (3), tag (3), defined (3), some (3), structured (3), platform (3), view (2), contact (2), privacy (2), policy (2), under (2), terms (2), foundation (2), inc (2), was (2), september (2), version (2), wikidata (2), information (2), upload (2), related (2), changes (2), portal (2), article (2), contents (2), more (2), talk (2), categories (2), specifically (2), marked (2), weasel (2), worded (2), phrases (2), august (2), short (2), bsd (2), https (2), protocol_buffers (2), chromium (2), operating (2), programming (2), applications (2), comparison (2), thrift (2), property (2), list (2), asn (2), binary (2), xml (2), nim (2), any (2), 2012 (2), thirdpartyaddons (2), add (2), ons (2), interchange (2), project (2), hosting (2), swift (2), rust (2), swi (2), library (2), elixir (2), ballerina (2), 2020 (2), beta (2), protocolbuffers (2), guide (2), 2010 (2), references (2), ruby (2), support (2), return (2), add_point (2), new (2), name (2), mutable_end (2), mutable_start (2), generated (2), cpp (2), after (2), buffer (2), compiled (2), compiler (2), output (2), over (2), repeated (2), int32 (2), particular (2), though (2), network (2), communication (2), simplicity (2), classes (2), forward (2), backward (2), but (2), there (2), way (2), specification (2), self (2), describing (2), than (2), structures (2), services (2), generates (2), rpc (2), storing (2), method (2), machine (2), internal (2), overview (2), cross (2), december (2), jump (2), cookie, statement, statistics, mobile, disclaimers, text, additional, may, apply, site, you, agree, registered, trademark, non, profit, organization, wikimedia, creative, commons, attribution, sharealike, last, edited, utc, українська, русский, português, norsk, bokmål, 日本語, bahasa, indonesia, 한국어, français, فارسی, español, deutsch, العربية, printable, download, pdf, print, export, cite, permanent, link, special, pages, what, here, recent, community, learn, help, contribute, donate, random, current, events, main, history, read, views, english, namespaces, log, account, contributions, logged, personal, menu, hidden, matches, index, title, oldid, 1112799194, summer, security, llc, oracle, america, goobuntu, glinux, fuchsia, aosp, tensorflow, polymer, nacl, libvpx, leveldb, kubernetes, gvisor, guice, guetzli, gson, guava, gerrit, gears, flutter, cpplint, closure, blockly, bazel, beam, angularjs, angular, amp, frameworks, development, sawzall, carbon, tesseract, openrefine, yenc, uuencode, xdr, cyphal, dsdl, messagepack, cbor, cap, ubjson, bson, base64, base32, avro, smi, amf, yaml, toml, rebol, rdf, signature, token, encryption, json, edifact, csv, atom, human, readable, exchange, official, documentation, pure, leverages, power, macro, depend, scalapb, quick, prost, rprotobuf, contrib, protobufs, lens, tomas, abrahamsson, gpb, protox, embedded, microcontrollers, nanopb, small, size, proto3, blockage, 2013, text_format, kenton, varda, response, steve, vinoski, eishay, smith, jvm, serializers, benchmarks, via, releases, frequently, asked, questions, implementations, julia, scala, perl, haskell, erlang, including, javanano, dialect, intended, supports, since, objective, low, resource, environments, points, createnewpolyline, set_label, std, const, createnewline, calling, above, produced, objects, follows, subsequently, one, produce, compilers, sources, dependent, both, demonstrate, how, composition, works, behaves, like, vector, defines, two, mandatory, items, equal, sign, end, start, proto2, syntax, associates, types, integers, identify, contains, only, numbers, providing, bandwidth, storage, savings, compared, primary, purpose, facilitate, its, speed, make, alternative, centric, structs, especially, where, interoperability, might, needed, future, canonically, serialized, into, compact, compatible, tell, meaning, full, datatypes, fields, without, refer, such, within, officially, supported, includes, ascii, loses, compatibility, behavior, according, thus, good, choice, debugging, who, wire, described, definition, compilation, invoked, sender, recipient, these, they, define, service, similar, facebook, created, amazon, microsoft, bond, protocols, offering, well, concrete, stack, ion, evernote, apache, widely, interchanging, kinds, serves, basis, custom, nearly, inter, remote, procedure, call, design, goals, emphasized, performance, designed, smaller, faster, developed, provided, multiple, below, useful, developing, programs, communicate, involves, describes, structure, program, generating, parsing, stream, bytes, represents, interface, serialize, website, idl, type, written, repository, days, ago, stable, early, 2001, july, public, initial, developer, search, encyclopedia, wayback, http, archive, 20221214161617, wiki, timestamps, capture, fail, success, 2023, jan, dec, nov, mar, sep, 2026, 985, captures,
Text of the page (random words):
protocol buffers wikipedia 985 captures 29 mar 2010 17 sep 2026 nov dec jan 14 2021 2022 2023 success fail about this capture timestamps the wayback machine http web archive org web 20221214161617 https en wikipedia org wiki protocol_buffers protocol buffers from wikipedia the free encyclopedia jump to navigation jump to search data serialization format protocol buffers developer s google initial release early 2001 internal 1 july 7 2008 2008 07 07 public stable release 21 11 8 december 2022 6 days ago 8 december 2022 2 repository github com protocolbuffers protobuf written in c c java python javascript ruby go php dart operating system any platform cross platform type serialization format and library idl compiler license bsd website developers google com protocol buffers protocol buffers protobuf is a free and open source cross platform data format used to serialize structured data it is useful in developing programs to communicate with each other over a network or for storing data the method involves an interface description language that describes the structure of some data and a program that generates source code from that description for generating or parsing a stream of bytes that represents the structured data contents 1 overview 2 example 3 language support 4 see also 5 references 6 external links overview edit google developed protocol buffers for internal use and provided a code generator for multiple languages under an open source license see below the design goals for protocol buffers emphasized simplicity and performance in particular it was designed to be smaller and faster than xml 3 protocol buffers are widely used at google for storing and interchanging all kinds of structured information the method serves as a basis for a custom remote procedure call rpc system that is used for nearly all inter machine communication at google 4 protocol buffers are similar to the apache thrift used by facebook evernote ion created by amazon or microsoft bond protocols offering as well a concrete rpc protocol stack to use for defined services called grpc 5 data structures called messages and services are described in a proto definition file proto and compiled with protoc this compilation generates code that can be invoked by a sender or recipient of these data structures for example example pb cc and example pb h are generated from example proto they define c classes for each message and service in example proto canonically messages are serialized into a binary wire format which is compact forward and backward compatible but not self describing that is there is no way to tell the names meaning or full datatypes of fields without an external specification there is no defined way to include or refer to such an external specification schema within a protocol buffers file the officially supported implementation includes an ascii serialization format 6 but this format though self describing loses the forward and backward compatibility behavior and according to some who is thus not a good choice for applications other than debugging though the primary purpose of protocol buffers is to facilitate network communication its simplicity and speed make protocol buffers an alternative to data centric c classes and structs especially where interoperability with other languages or systems might be needed in the future example edit a schema for a particular use of protocol buffers associates data types with field names using integers to identify each field the protocol buffer data contains only the numbers not the field names providing some bandwidth storage savings compared with systems that include the field names in the data polyline proto syntax proto2 message point required int32 x 1 required int32 y 2 optional string label 3 message line required point start 1 required point end 2 optional string label 3 message polyline repeated point point 1 optional string label 2 the point message defines two mandatory data items x and y the data item label is optional each data item has a tag the tag is defined after the equal sign for example x has the tag 1 the line and polyline messages which both use point demonstrate how composition works in protocol buffers polyline has a repeated field which behaves like a vector this schema can subsequently be compiled for use by one or more programming languages google provides a compiler called protoc which can produce output for c java or python other schema compilers are available from other sources to create language dependent output for over 20 other languages 7 for example after a c version of the protocol buffer schema above is produced a c source code file polyline cpp can use the message objects as follows polyline cpp include polyline pb h generated by calling protoc polyline proto line createnewline const std string name create a line from 10 20 to 30 40 line line new line line mutable_start set_x 10 line mutable_start set_y 20 line mutable_end set_x 30 line mutable_end set_y 40 line set_label name return line polyline createnewpolyline create a polyline with points at 10 10 and 20 20 polyline polyline new polyline point point1 polyline add_point point1 set_x 10 point1 set_y 10 point point2 polyline add_point point2 set_x 20 point2 set_y 20 return polyline language support edit protobuf 2 0 provides a code generator for c java c 8 and python 9 protobuf 3 0 provides a code generator for c java including javanano a dialect intended for low resource environments python go ruby objective c c 10 it also supports javascript since 3 0 0 beta 2 11 third party implementations are also available for ballerina 12 c 13 14 c 15 dart elixir 16 17 erlang 18 haskell 19 javascript 20 perl php prolog 21 22 r 23 rust 24 25 26 scala 27 swift 28 julia 29 and nim 30 see also edit free and open source software portal grpc comparison of data serialization formats flatbuffers asn 1 references edit frequently asked questions protocol buffers google developers retrieved 2 october 2016 releases google protobuf via github eishay smith jvm serializers benchmarks github retrieved 2010 07 12 kenton varda a response to steve vinoski retrieved 2008 07 14 grpc grpc io retrieved 2 october 2016 text_format h protocol buffers google code retrieved 2012 03 02 thirdpartyaddons protobuf links to third party add ons protocol buffers google s data interchange format google project hosting code google com retrieved on 2013 09 18 protocol buffers in c code blockage retrieved 2017 05 12 protocol buffers language guide google developers retrieved 2016 04 21 language guide proto3 protocol buffers google developers retrieved 2020 08 09 release protocol buffers v3 0 0 beta 2 protocolbuffers protobuf github retrieved 2020 08 09 ballerina grpc nanopb protocol buffers with small code size retrieved 2017 12 12 protocol buffers implementation in c github retrieved 2017 12 12 embedded proto protobuf for microcontrollers retrieved 2021 08 15 protox github 25 october 2021 protobuf elixir github 26 october 2021 tomas abrahamsson gpb github 19 october 2021 proto lens github 16 october 2021 protocol buffers for javascript github com retrieved 2016 05 14 swi prolog google s protocol buffers library swi prolog contrib protobufs retrieved 2022 04 21 rprotobuf github rust protobuf github 26 october 2021 prost github 21 august 2021 quick protobuf github 12 october 2021 scalapb github retrieved 27 september 2022 swift protobuf github 26 october 2021 thirdpartyaddons protobuf links to third party add ons protocol buffers google s data interchange format google project hosting retrieved 2012 11 07 protobuf implementation in pure nim that leverages the power of the macro system to not depend on any external tools github 21 october 2021 external links edit official documentation at developers google com protobuf on github v t e data exchange formats human readable formats atom csv edifact json web encryption web token web signature property list rdf rebol toml xml yaml binary formats amf asn 1 smi avro base32 base64 bson ubjson cap n proto cbor flatbuffers messagepack property list protocol buffers thrift cyphal dsdl xdr uuencode yenc comparison of data serialization formats v t e google free and open source software software applications chromium openrefine tesseract programming languages carbon dart go sawzall frameworks and development tools amp angular angularjs beam bazel blockly closure tools cpplint flatbuffers flutter gears gerrit guava grpc gson guetzli guice gvisor kubernetes leveldb libvpx nacl or tools polymer protocol buffers tensorflow operating systems aosp chromium os fuchsia glinux goobuntu related code in google llc v oracle america inc open source security foundation summer of code retrieved from https en wikipedia org w index php title protocol_buffers oldid 1112799194 categories data serialization formats google software software using the bsd license hidden categories articles with short description short description matches wikidata all articles with specifically marked weasel worded phrases articles with specifically marked weasel worded phrases from august 2022 navigation menu personal tools not logged in talk contributions create account log in namespaces article talk english views read edit view history more navigation main page contents current events random article about wikipedia contact us donate contribute help learn to edit community portal recent changes upload file tools what links here related changes upload file special pages permanent link page information cite this page wikidata item print export download as pdf printable version languages العربية deutsch español فارسی français 한국어 bahasa indonesia 日本語 norsk bokmål português русский українська 中文 edit links this page was last edited on 28 september 2022 at 05 25 utc text is available under the creative commons attribution sharealike license 3 0 additional terms may apply by using this site you agree to the terms of use and privacy policy wikipedia is a registered trademark of the wikimedia foundation inc a non profit organization privacy policy about wikipedia disclaimers contact wikipedia mobile view developers statistics cookie statement
|