<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="nb">
	<id>https://www.wikisida.no/index.php?action=history&amp;feed=atom&amp;title=Protocol_Buffers</id>
	<title>Protocol Buffers - Sideversjonshistorikk</title>
	<link rel="self" type="application/atom+xml" href="https://www.wikisida.no/index.php?action=history&amp;feed=atom&amp;title=Protocol_Buffers"/>
	<link rel="alternate" type="text/html" href="https://www.wikisida.no/index.php?title=Protocol_Buffers&amp;action=history"/>
	<updated>2026-04-21T15:09:05Z</updated>
	<subtitle>Versjonshistorikk for denne siden på wikien</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://www.wikisida.no/index.php?title=Protocol_Buffers&amp;diff=161804&amp;oldid=prev</id>
		<title>Wikisida: Én sideversjon ble importert</title>
		<link rel="alternate" type="text/html" href="https://www.wikisida.no/index.php?title=Protocol_Buffers&amp;diff=161804&amp;oldid=prev"/>
		<updated>2026-04-21T06:28:25Z</updated>

		<summary type="html">&lt;p&gt;Én sideversjon ble importert&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;nb&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Eldre sideversjon&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Sideversjonen fra 21. apr. 2026 kl. 06:28&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-notice&quot; lang=&quot;nb&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(Ingen forskjell)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key c1wiki:diff:1.41:old-161803:rev-161804 --&gt;
&lt;/table&gt;</summary>
		<author><name>Wikisida</name></author>
	</entry>
	<entry>
		<id>https://www.wikisida.no/index.php?title=Protocol_Buffers&amp;diff=161803&amp;oldid=prev</id>
		<title>nb&gt;Telaneo: bytter ut referansemal med tag using AWB</title>
		<link rel="alternate" type="text/html" href="https://www.wikisida.no/index.php?title=Protocol_Buffers&amp;diff=161803&amp;oldid=prev"/>
		<updated>2023-06-27T07:21:01Z</updated>

		<summary type="html">&lt;p&gt;bytter ut referansemal med tag using &lt;a href=&quot;/index.php?title=Wikisida.no:AWB&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Wikisida.no:AWB (siden finnes ikke)&quot;&gt;AWB&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Ny side&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Protocol Buffers&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;Protobuf&amp;#039;&amp;#039;&amp;#039;) er et [[multiplattform]]s dataformat med [[fri og åpen kildekode]] som brukes til [[Serialisering|serialisere]] strukturerte data. Formatet brukes for å utvikle programmer som kommuniserer med hverandre over et nettverk eller for lagring av data. Metoden gjør bruk av et [[grensesnittbeskrivelsesspråk]] som beskriver strukturen til noen data, og et program som genererer [[kildekode]]n for den beskrivelsen for å generere eller [[Parsing|parse]] en strøm av [[bit]]er som representerer de strukturerte dataene.&lt;br /&gt;
&lt;br /&gt;
== Bruk hos Google ==&lt;br /&gt;
Protocol Buffers ble utviklet av [[Google]] utviklet for intern bruk, og ga ut en [[Kodegenerering (kompilatorer)|kodegenerator]] for flere språk under en lisens for åpen kildekode. Designmålene var enkelhet og bedre ytelse, og den ble spesielt designet for å være mindre og raskere enn [[XML]].&amp;lt;ref&amp;gt;{{Kilde www|url=https://github.com/eishay/jvm-serializers/wiki|tittel=jvm-serializers Benchmarks|besøksdato=2010-07-12|etternavn=Eishay Smith}}&amp;lt;/ref&amp;gt; Protocol Buffers er mye innad i Google sine tjenester for lagring og utveksling av all slags strukturert informasjon. Metoden tjener som grunnlag for et system for tilpassede [[Remote procedure call|eksterne prosedyrekall]] (RPC) som brukes for nesten alle mellommaskin-kommunikasjon hos Google.&amp;lt;ref&amp;gt;{{Kilde www|url=http://steve.vinoski.net/blog/2008/07/13/protocol-buffers-leaky-rpc/#comment-1093|tittel=A response to Steve Vinoski|besøksdato=2008-07-14|etternavn=Kenton Varda}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Teknisk ==&lt;br /&gt;
Datastrukturene (kalt &amp;#039;&amp;#039;messages&amp;#039;&amp;#039; i Protocol Buffers) og tjenestene er beskrevet i en proto-definisjonsfil (&amp;lt;code&amp;gt;.proto&amp;lt;/code&amp;gt;) og kompileres med kommandoen &amp;lt;code&amp;gt;protocol&amp;lt;/code&amp;gt;. Denne kompileringen genererer kode som kan kalles av en avsender eller mottaker av disse datastrukturene. Eksempelvis kan &amp;lt;code&amp;gt;eksempel.pb.cc&amp;lt;/code&amp;gt; og &amp;lt;code&amp;gt;eksempel.pb.h&amp;lt;/code&amp;gt; bli generert fra &amp;lt;code&amp;gt;eksempel.proto&amp;lt;/code&amp;gt;, og disse definerer [[C++]] klasser for hver melding og tjeneste i &amp;lt;code&amp;gt;eksempel.proto&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Meldingene blir serialiserte inn i et [[Protokoll (datamaskiner)|binært]] kodet wireprotokoll-format som er kompakt, forover - og bakoverkompatibelt, men ikke selvbeskrivende (det vil si at det ikke er mulig å fortelle navn, mening eller fulle datatyper i felter uten ekstern spesifikasjon). Det er ingen definert måte å inkludere eller referere til en slik ekstern spesifikasjon ([[wiktionary:schema|&amp;#039;&amp;#039;schema&amp;#039;&amp;#039;]]) innenfor en Protocol Buffers-fil. Den offisielt støttede implementeringen inkluderer et ASCII-serialiseringsformat,&amp;lt;ref&amp;gt;{{Kilde www|url=http://code.google.com/apis/protocolbuffers/docs/reference/cpp/google.protobuf.text_format.html|tittel=text_format.h - Protocol Buffers - Google Code|besøksdato=2012-03-02}}&amp;lt;/ref&amp;gt; men selv om dette formatet beskriver seg selv mister det frem- og bakoverkompatibilitet, og er dermed ikke et godt valg for andre bruksområder enn feilsøking.&lt;br /&gt;
&lt;br /&gt;
Selv om hovedformålet med Protocol Buffers er å lette nettverkskommunikasjon gjør Protocol Buffers sin enkelhet og hastighet at den også er et alternativ til datasentrerte C++ klasser og -strukturer, særlig der interoperabilitet med andre språk eller systemer kan være nødvendig i fremtiden.&lt;br /&gt;
&lt;br /&gt;
== Språkstøtte ==&lt;br /&gt;
Protobuf 2.0 har en [[Kodegenerering (kompilatorer)|kodegenerator]] for [[C++]], [[Java (programmeringsspråk)|Java]], [[C Sharp|C#]]&amp;lt;ref&amp;gt;{{Kilde www|url=http://codeblockage.blogspot.com/2015/08/protocol-buffers-in-c.html|tittel=Protocol Buffers in C#|besøksdato=2017-05-12}}&amp;lt;/ref&amp;gt; og [[Python]].&amp;lt;ref&amp;gt;{{Kilde www|url=https://developers.google.com/protocol-buffers/docs/proto|tittel=Protocol Buffers Language Guide|besøksdato=2016-04-21}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Protobuf 3.0 har en kodegenerator for [[C++]], [[Java (programmeringsspråk)|Java]] (inkludert JavaNano, en dialekt beregnet for [[Systemressurs|miljøer med lav ressursbruk]]), [[Python]], [[Go (programmeringsspråk)|Go]], [[Ruby]], [[Objective-C]] og [[C Sharp|C#]].&amp;lt;ref&amp;gt;{{Kilde www|url=https://developers.google.com/protocol-buffers/docs/proto3|tittel=Language Guide (proto3) {{!}} Protocol Buffers|besøksdato=2020-08-09}}&amp;lt;/ref&amp;gt; Den støtter også JavaScript fra og med 3.0.0-beta-2.&amp;lt;ref&amp;gt;{{Kilde www|url=https://github.com/protocolbuffers/protobuf/releases/tag/v3.0.0-beta-2|tittel=Release Protocol Buffers v3.0.0-beta-2 · protocolbuffers/protobuf|besøksdato=2020-08-09}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tredjeparts-implementeringer er også tilgjengelige for Ballerina,&amp;lt;ref&amp;gt;{{Kilde www|url=https://ballerina.io/learn/tooling-guide/cli-tools/grpc/|tittel=Ballerina - GRPC|besøksdato=2022-03-24|arkiv-dato=2021-11-15|arkiv-url=https://web.archive.org/web/20211115165127/https://ballerina.io/learn/tooling-guide/cli-tools/grpc/|url-status=yes}}&amp;lt;/ref&amp;gt; [[C (programmeringsspråk)|C]],&amp;lt;ref&amp;gt;{{Kilde www|url=https://jpa.kapsi.fi/nanopb/|tittel=Nanopb - protocol buffers with small code size|besøksdato=2017-12-12}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Kilde www|url=https://github.com/protobuf-c/protobuf-c|tittel=Protocol Buffers implementation in C|besøksdato=2017-12-12}}&amp;lt;/ref&amp;gt; [[C++]],&amp;lt;ref&amp;gt;{{Kilde www|url=https://embeddedproto.com/|tittel=Embedded Proto - Protobuf for microcontrollers|besøksdato=2021-08-15}}&amp;lt;/ref&amp;gt; Dart, Eliksir,&amp;lt;ref&amp;gt;{{Kilde www|url=https://github.com/ahamez/protox|tittel=Protox}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Kilde www|url=https://github.com/elixir-protobuf/protobuf|tittel=Protobuf-elixir}}&amp;lt;/ref&amp;gt; [[Erlang (programmeringsspråk)|Erlang]],&amp;lt;ref&amp;gt;{{Kilde www|url=https://github.com/tomas-abrahamsson/gpb|tittel=Tomas-abrahamsson/GPB}}&amp;lt;/ref&amp;gt; [[Haskell]],&amp;lt;ref&amp;gt;{{Kilde www|url=https://github.com/google/proto-lens|tittel=Proto-lens}}&amp;lt;/ref&amp;gt; [[JavaScript]],&amp;lt;ref&amp;gt;{{Kilde www|url=https://github.com/dcodeIO/protobuf.js|tittel=Protocol Buffers for JavaScript.|besøksdato=2016-05-14|forlag=github.com}}&amp;lt;/ref&amp;gt; [[Perl]], [[PHP]], [[R (programmeringsspråk)|R]],&amp;lt;ref&amp;gt;{{Kilde www|url=https://github.com/eddelbuettel/rprotobuf/tree/master/src|tittel=Rprotobuf/SRC at master · eddelbuettel/Rprotobuf}}&amp;lt;/ref&amp;gt; [[Rust (programmeringsspråk)|Rust]],&amp;lt;ref&amp;gt;{{Kilde www|url=https://github.com/stepancheg/rust-protobuf|tittel=Rust-protobuf}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Kilde www|url=https://github.com/danburkert/prost|tittel=PROST!}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Kilde www|url=https://github.com/tafia/quick-protobuf|tittel=Quick-protobuf}}&amp;lt;/ref&amp;gt; [[Scala (programmeringsspråk)|Scala]], [[Swift (programmeringsspråk)|Swift]],&amp;lt;ref&amp;gt;{{Kilde www|url=https://github.com/apple/swift-protobuf|tittel=Swift Protobuf}}&amp;lt;/ref&amp;gt; Julia&amp;lt;ref&amp;gt;{{Kilde www|url=http://code.google.com/p/protobuf/wiki/ThirdPartyAddOns|tittel=ThirdPartyAddOns - protobuf - Links to third-party add-ons. - Protocol Buffers - Google&amp;#039;s data interchange format - Google Project Hosting|besøksdato=2012-11-07}}&amp;lt;/ref&amp;gt; og Nim.&amp;lt;ref&amp;gt;{{Kilde www|url=https://github.com/PMunch/protobuf-nim|tittel=Protobuf implementation in pure Nim that leverages the power of the macro system to not depend on any external tools}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Alternative protokoller ==&lt;br /&gt;
Protocol Buffers ligner på Apache Thrift (som brukes av Facebook og [[Evernote]]), Ion (opprettet av Amazon) og Microsoft Bond-protokollene. I tillegg tilbyr Protocol Buffers gRPC som en konkret RPC-protokollstakk for bruk med definerte tjenester.&amp;lt;ref&amp;gt;{{Kilde www|url=http://www.grpc.io/|tittel=grpc|besøksdato=2. oktober 2016}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Se også ==&lt;br /&gt;
* [[gRPC]]&lt;br /&gt;
* [[ASN.1]]&lt;br /&gt;
&lt;br /&gt;
== Referanser ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategori:Fri programvare]]&lt;br /&gt;
[[Kategori:Filformater]]&lt;/div&gt;</summary>
		<author><name>nb&gt;Telaneo</name></author>
	</entry>
</feed>