"use strict";(self.webpackChunkspeice_io=self.webpackChunkspeice_io||[]).push([["2410"],{53239:function(e,t,n){n.r(t),n.d(t,{assets:function(){returnu},contentTitle:function(){returns},default:function(){returnp},frontMatter:function(){returno},metadata:function(){returnr},toc:function(){returnc}});varr=n(13303),i=n(85893),a=n(50065);leto={slug:"2019/09/binary-format-shootout",title:"Binary format shootout",date:newDate("2019-09-28T12:00:00.000Z"),authors:["bspeice"],tags:[]},s=void0,u={authorsImageUrls:[void0]},c=[];functionl(e){lett={a:"a",del:"del",p:"p",...(0,a.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(t.p,{children:["I've found that in many personal projects,\n",(0,i.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Analysis_paralysis",children:"analysis paralysis"})," is particularly deadly.\nMaking good decisions in the beginning avoids pain and suffering later; if extra research prevents\nfuture problems, I'm happy to continue ",(0,i.jsx)(t.del,{children:"procrastinating"})," researching indefinitely."]}),"\n",(0,i.jsx)(t.p,{children:"So let's say you're in need of a binary serialization format. Data will be going over the network,\nnot just in memory, so having a schema document and code generation is a must. Performance is\ncrucial, so formats that support zero-copy de/serialization are given priority. And the more\nlanguages supported, the better; I use Rust, but can't predict what other languages this could\ninteract with."}),"\n",(0,i.jsx)(t.p,{children:"Given these requirements, the candidates I could find were:"})]})}functionp(e={}){let{wrapper:t}={...(0,a.a)(),...e.components};returnt?(0,i.jsx)(t,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},50065:function(e,t,n){n.d(t,{Z:function(){returns},a:function(){returno}});varr=n(67294);leti={},a=r.createContext(i);functiono(e){lett=r.useContext(a);returnr.useMemo(function(){return"function"==typeofe?e(t):{...t,...e}},[t,e])}functions(e){lett;returnt=e.disableParentContext?"function"==typeofe.components?e.components(i):e.components||i:o(e.components),r.createElement(a.Provider,{value:t},e.children)}},13303:function(e){e.exports=JSON.parse('{"permalink":"/2019/09/binary-format-shootout","source":"@site/blog/2019-09-28-binary-format-shootout/index.mdx","title":"Binary format shootout","description":"I\'ve found that in many personal projects,","date":"2019-09-28T12:00:00.000Z","tags":[],"readingTime":8.37,"hasTruncateMarker":true,"authors":[{"name":"Bradlee Speice","socials":{"github":"https://github.com/bspeice"},"key":"bspeice","page":null}],"frontMatter":{"slug":"2019/09/binary-format-shootout","title":"Binary format shootout","date":"2019-09-28T12:00:00.000Z","authors":["bspeice"],"tags":[]},"unlisted":false,"lastUpdatedAt":1731207983000,"prevItem":{"title":"Release the GIL","permalink":"/2019/12/release-the-gil"},"nextItem":{"title":"On building high performance systems","permalink":"/2019/06/high-performance-systems"}}')}}]);