CINXE.COM
SQLite and SQLite alternatives - a comprehensive overview
<!DOCTYPE html> <html lang="en-US"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <link rel="pingback" href="https://objectbox.io/wordpress/xmlrpc.php" /> <script type="text/javascript"> document.documentElement.className = 'js'; </script> <meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' /> <!-- This site is optimized with the Yoast SEO plugin v23.7 - https://yoast.com/wordpress/plugins/seo/ --> <title>SQLite and SQLite alternatives - a comprehensive overview</title> <meta name="description" content="Do you need an overview of SQLite alternatives? We took a look at current alternatives in a comprehensive comparison matrix, updated in 2024" /> <link rel="canonical" href="https://objectbox.io/sqlite-alternatives/" /> <meta property="og:locale" content="en_US" /> <meta property="og:type" content="article" /> <meta property="og:title" content="SQLite and SQLite alternatives - a comprehensive overview" /> <meta property="og:description" content="Do you need an overview of SQLite alternatives? We took a look at current alternatives in a comprehensive comparison matrix, updated in 2024" /> <meta property="og:url" content="https://objectbox.io/sqlite-alternatives/" /> <meta property="og:site_name" content="ObjectBox" /> <meta property="article:publisher" content="https://www.facebook.com/objectboxTeam/" /> <meta property="article:author" content="https://www.facebook.com/vivien.dollinger.5" /> <meta property="article:published_time" content="2024-05-07T14:21:18+00:00" /> <meta property="article:modified_time" content="2024-10-15T14:47:35+00:00" /> <meta property="og:image" content="https://objectbox.io/wordpress/wp-content/uploads/2024/05/SQliteAndSQLiteAlternatives2024_2.jpg" /> <meta property="og:image:width" content="2000" /> <meta property="og:image:height" content="1158" /> <meta property="og:image:type" content="image/jpeg" /> <meta name="author" content="Vivien" /> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:creator" content="@mobile_n_games" /> <meta name="twitter:site" content="@objectbox_io" /> <meta name="twitter:label1" content="Written by" /> <meta name="twitter:data1" content="Vivien" /> <meta name="twitter:label2" content="Est. reading time" /> <meta name="twitter:data2" content="10 minutes" /> <script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"Article","@id":"https://objectbox.io/sqlite-alternatives/#article","isPartOf":{"@id":"https://objectbox.io/sqlite-alternatives/"},"author":{"name":"Vivien","@id":"https://objectbox.io/#/schema/person/46a1550fc3640199c68a6ec8202d6f8b"},"headline":"SQLite and SQLite alternatives – a comprehensive overview","datePublished":"2024-05-07T14:21:18+00:00","dateModified":"2024-10-15T14:47:35+00:00","mainEntityOfPage":{"@id":"https://objectbox.io/sqlite-alternatives/"},"wordCount":1779,"publisher":{"@id":"https://objectbox.io/#organization"},"image":{"@id":"https://objectbox.io/sqlite-alternatives/#primaryimage"},"thumbnailUrl":"https://objectbox.io/wordpress/wp-content/uploads/2024/05/SQliteAndSQLiteAlternatives2024_2.jpg","keywords":["Edge Computing","iot","Mobile Database","synchronization"],"articleSection":["Android","Edge Database","IoT","Mobile Database"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https://objectbox.io/sqlite-alternatives/","url":"https://objectbox.io/sqlite-alternatives/","name":"SQLite and SQLite alternatives - a comprehensive overview","isPartOf":{"@id":"https://objectbox.io/#website"},"primaryImageOfPage":{"@id":"https://objectbox.io/sqlite-alternatives/#primaryimage"},"image":{"@id":"https://objectbox.io/sqlite-alternatives/#primaryimage"},"thumbnailUrl":"https://objectbox.io/wordpress/wp-content/uploads/2024/05/SQliteAndSQLiteAlternatives2024_2.jpg","datePublished":"2024-05-07T14:21:18+00:00","dateModified":"2024-10-15T14:47:35+00:00","description":"Do you need an overview of SQLite alternatives? We took a look at current alternatives in a comprehensive comparison matrix, updated in 2024","breadcrumb":{"@id":"https://objectbox.io/sqlite-alternatives/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https://objectbox.io/sqlite-alternatives/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https://objectbox.io/sqlite-alternatives/#primaryimage","url":"https://objectbox.io/wordpress/wp-content/uploads/2024/05/SQliteAndSQLiteAlternatives2024_2.jpg","contentUrl":"https://objectbox.io/wordpress/wp-content/uploads/2024/05/SQliteAndSQLiteAlternatives2024_2.jpg","width":2000,"height":1158,"caption":"SQLite and SQLite alternatives - mobile and IoT databases"},{"@type":"BreadcrumbList","@id":"https://objectbox.io/sqlite-alternatives/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"ObjectBox","item":"https://objectbox.io/"},{"@type":"ListItem","position":2,"name":"Mobile Database","item":"https://objectbox.io/category/mobile-database/"},{"@type":"ListItem","position":3,"name":"SQLite and SQLite alternatives – a comprehensive overview"}]},{"@type":"WebSite","@id":"https://objectbox.io/#website","url":"https://objectbox.io/","name":"ObjectBox","description":"Fast on-Device database with vector search for Mobike, IoT & other embedded device","publisher":{"@id":"https://objectbox.io/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://objectbox.io/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https://objectbox.io/#organization","name":"ObjectBox","url":"https://objectbox.io/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https://objectbox.io/#/schema/logo/image/","url":"https://objectbox.io/wordpress/wp-content/uploads/2021/06/objectbox-logo.png","contentUrl":"https://objectbox.io/wordpress/wp-content/uploads/2021/06/objectbox-logo.png","width":559,"height":186,"caption":"ObjectBox"},"image":{"@id":"https://objectbox.io/#/schema/logo/image/"},"sameAs":["https://www.facebook.com/objectboxTeam/","https://x.com/objectbox_io","https://www.instagram.com/objectbox_io/","https://www.linkedin.com/company/objectbox","https://www.youtube.com/channel/UCLs3F3Lhh8pjC66WZIopJ6Q"]},{"@type":"Person","@id":"https://objectbox.io/#/schema/person/46a1550fc3640199c68a6ec8202d6f8b","name":"Vivien","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https://objectbox.io/#/schema/person/image/","url":"https://secure.gravatar.com/avatar/f5b9dacdc7f63c622a4d6ac2833705b8?s=96&d=mm&r=g","contentUrl":"https://secure.gravatar.com/avatar/f5b9dacdc7f63c622a4d6ac2833705b8?s=96&d=mm&r=g","caption":"Vivien"},"description":"CEO of ObjectBox, former Development Director at Koch Media","sameAs":["https://www.facebook.com/vivien.dollinger.5","https://www.linkedin.com/in/vivien-dollinger/","https://x.com/mobile_n_games"],"url":"https://objectbox.io/author/vivien/"}]}</script> <!-- / Yoast SEO plugin. --> <link rel='dns-prefetch' href='//js.hs-scripts.com' /> <link rel="alternate" type="application/rss+xml" title="ObjectBox » Feed" href="https://objectbox.io/feed/" /> <link rel="alternate" type="application/rss+xml" title="ObjectBox » Comments Feed" href="https://objectbox.io/comments/feed/" /> <link rel="alternate" type="application/rss+xml" title="ObjectBox » SQLite and SQLite alternatives – a comprehensive overview Comments Feed" href="https://objectbox.io/sqlite-alternatives/feed/" /> <script type="text/javascript"> /* <![CDATA[ */ window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/objectbox.io\/wordpress\/wp-includes\/js\/wp-emoji-release.min.js?ver=6.5.5"}}; /*! This file is auto-generated */ !function(i,n){var o,s,e;function c(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function p(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data),r=(e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0),new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data));return t.every(function(e,t){return e===r[t]})}function u(e,t,n){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\uddfa\ud83c\uddf3","\ud83c\uddfa\u200b\ud83c\uddf3")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!n(e,"\ud83d\udc26\u200d\u2b1b","\ud83d\udc26\u200b\u2b1b")}return!1}function f(e,t,n){var r="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):i.createElement("canvas"),a=r.getContext("2d",{willReadFrequently:!0}),o=(a.textBaseline="top",a.font="600 32px Arial",{});return e.forEach(function(e){o[e]=t(a,e,n)}),o}function t(e){var t=i.createElement("script");t.src=e,t.defer=!0,i.head.appendChild(t)}"undefined"!=typeof Promise&&(o="wpEmojiSettingsSupports",s=["flag","emoji"],n.supports={everything:!0,everythingExceptFlag:!0},e=new Promise(function(e){i.addEventListener("DOMContentLoaded",e,{once:!0})}),new Promise(function(t){var n=function(){try{var e=JSON.parse(sessionStorage.getItem(o));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(s),u.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"}),a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=function(e){c(n=e.data),a.terminate(),t(n)})}catch(e){}c(n=f(s,u,p))}t(n)}).then(function(e){for(var t in e)n.supports[t]=e[t],n.supports.everything=n.supports.everything&&n.supports[t],"flag"!==t&&(n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&n.supports[t]);n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&!n.supports.flag,n.DOMReady=!1,n.readyCallback=function(){n.DOMReady=!0}}).then(function(){return e}).then(function(){var e;n.supports.everything||(n.readyCallback(),(e=n.source||{}).concatemoji?t(e.concatemoji):e.wpemoji&&e.twemoji&&(t(e.twemoji),t(e.wpemoji)))}))}((window,document),window._wpemojiSettings); /* ]]> */ </script> <meta content="ObjectBox Divi v.1.0.1" name="generator"/><link rel='stylesheet' id='validate-engine-css-css' href='https://objectbox.io/wordpress/wp-content/plugins/wysija-newsletters/css/validationEngine.jquery.css?ver=2.22' type='text/css' media='all' /> <style id='wp-emoji-styles-inline-css' type='text/css'> img.wp-smiley, img.emoji { display: inline !important; border: none !important; box-shadow: none !important; height: 1em !important; width: 1em !important; margin: 0 0.07em !important; vertical-align: -0.1em !important; background: none !important; padding: 0 !important; } </style> <link rel='stylesheet' id='wp-block-library-css' href='https://objectbox.io/wordpress/wp-includes/css/dist/block-library/style.min.css?ver=6.5.5' type='text/css' media='all' /> <style id='wp-block-library-theme-inline-css' type='text/css'> .wp-block-audio figcaption{color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-audio figcaption{color:#ffffffa6}.wp-block-audio{margin:0 0 1em}.wp-block-code{border:1px solid #ccc;border-radius:4px;font-family:Menlo,Consolas,monaco,monospace;padding:.8em 1em}.wp-block-embed figcaption{color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-embed figcaption{color:#ffffffa6}.wp-block-embed{margin:0 0 1em}.blocks-gallery-caption{color:#555;font-size:13px;text-align:center}.is-dark-theme .blocks-gallery-caption{color:#ffffffa6}.wp-block-image figcaption{color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-image figcaption{color:#ffffffa6}.wp-block-image{margin:0 0 1em}.wp-block-pullquote{border-bottom:4px solid;border-top:4px solid;color:currentColor;margin-bottom:1.75em}.wp-block-pullquote cite,.wp-block-pullquote footer,.wp-block-pullquote__citation{color:currentColor;font-size:.8125em;font-style:normal;text-transform:uppercase}.wp-block-quote{border-left:.25em solid;margin:0 0 1.75em;padding-left:1em}.wp-block-quote cite,.wp-block-quote footer{color:currentColor;font-size:.8125em;font-style:normal;position:relative}.wp-block-quote.has-text-align-right{border-left:none;border-right:.25em solid;padding-left:0;padding-right:1em}.wp-block-quote.has-text-align-center{border:none;padding-left:0}.wp-block-quote.is-large,.wp-block-quote.is-style-large,.wp-block-quote.is-style-plain{border:none}.wp-block-search .wp-block-search__label{font-weight:700}.wp-block-search__button{border:1px solid #ccc;padding:.375em .625em}:where(.wp-block-group.has-background){padding:1.25em 2.375em}.wp-block-separator.has-css-opacity{opacity:.4}.wp-block-separator{border:none;border-bottom:2px solid;margin-left:auto;margin-right:auto}.wp-block-separator.has-alpha-channel-opacity{opacity:1}.wp-block-separator:not(.is-style-wide):not(.is-style-dots){width:100px}.wp-block-separator.has-background:not(.is-style-dots){border-bottom:none;height:1px}.wp-block-separator.has-background:not(.is-style-wide):not(.is-style-dots){height:2px}.wp-block-table{margin:0 0 1em}.wp-block-table td,.wp-block-table th{word-break:normal}.wp-block-table figcaption{color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-table figcaption{color:#ffffffa6}.wp-block-video figcaption{color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-video figcaption{color:#ffffffa6}.wp-block-video{margin:0 0 1em}.wp-block-template-part.has-background{margin-bottom:0;margin-top:0;padding:1.25em 2.375em} </style> <style id='global-styles-inline-css' type='text/css'> body{--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--font-family--inter: "Inter", sans-serif;--wp--preset--font-family--cardo: Cardo;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}body { margin: 0;--wp--style--global--content-size: 823px;--wp--style--global--wide-size: 1080px; }.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width: var(--wp--style--global--content-size);margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignwide{max-width: var(--wp--style--global--wide-size);}body .is-layout-flex{display: flex;}body .is-layout-flex{flex-wrap: wrap;align-items: center;}body .is-layout-flex > *{margin: 0;}body .is-layout-grid{display: grid;}body .is-layout-grid > *{margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}a:where(:not(.wp-element-button)){text-decoration: underline;}.wp-element-button, .wp-block-button__link{background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;line-height: inherit;padding: calc(0.667em + 2px) calc(1.333em + 2px);text-decoration: none;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}.has-inter-font-family{font-family: var(--wp--preset--font-family--inter) !important;}.has-cardo-font-family{font-family: var(--wp--preset--font-family--cardo) !important;} .wp-block-navigation a:where(:not(.wp-element-button)){color: inherit;} :where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;} :where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;} .wp-block-pullquote{font-size: 1.5em;line-height: 1.6;} </style> <link rel='stylesheet' id='cookie-notice-front-css' href='https://objectbox.io/wordpress/wp-content/plugins/cookie-notice/css/front.min.css?ver=2.4.18' type='text/css' media='all' /> <link rel='stylesheet' id='dvmd-tm-public-module-style-css' href='https://objectbox.io/wordpress/wp-content/plugins/divi-modules-table-maker/extensions/styles/public-module-style.css?ver=3.1.2' type='text/css' media='all' /> <link rel='stylesheet' id='woocommerce-layout-css' href='https://objectbox.io/wordpress/wp-content/plugins/woocommerce/assets/css/woocommerce-layout.css?ver=9.3.3' type='text/css' media='all' /> <link rel='stylesheet' id='woocommerce-smallscreen-css' href='https://objectbox.io/wordpress/wp-content/plugins/woocommerce/assets/css/woocommerce-smallscreen.css?ver=9.3.3' type='text/css' media='only screen and (max-width: 768px)' /> <link rel='stylesheet' id='woocommerce-general-css' href='https://objectbox.io/wordpress/wp-content/plugins/woocommerce/assets/css/woocommerce.css?ver=9.3.3' type='text/css' media='all' /> <style id='woocommerce-inline-inline-css' type='text/css'> .woocommerce form .form-row .required { visibility: visible; } </style> <link rel='stylesheet' id='divi-torque-lite-modules-style-css' href='https://objectbox.io/wordpress/wp-content/plugins/addons-for-divi/assets/css/modules-style.css?ver=4.0.5' type='text/css' media='all' /> <link rel='stylesheet' id='divi-torque-lite-magnific-popup-css' href='https://objectbox.io/wordpress/wp-content/plugins/addons-for-divi/assets/libs/magnific-popup/magnific-popup.min.css?ver=4.0.5' type='text/css' media='all' /> <link rel='stylesheet' id='divi-torque-lite-frontend-css' href='https://objectbox.io/wordpress/wp-content/plugins/addons-for-divi/assets/css/frontend.css?ver=4.0.5' type='text/css' media='all' /> <link rel='stylesheet' id='divi-modules-table-maker-styles-css' href='https://objectbox.io/wordpress/wp-content/plugins/divi-modules-table-maker/extensions/divi-4/styles/style.min.css?ver=3.1.2' type='text/css' media='all' /> <link rel='stylesheet' id='divi-style-parent-css' href='https://objectbox.io/wordpress/wp-content/themes/Divi/style-static.min.css?ver=4.22.0' type='text/css' media='all' /> <link rel='stylesheet' id='divi-style-css' href='https://objectbox.io/wordpress/wp-content/themes/obx-divi-child/style.css?ver=4.22.0' type='text/css' media='all' /> <style id='divi-style-inline-css' type='text/css'> picture#logo { display: inherit; } picture#logo source, picture#logo img { width: auto; max-height: 45%; vertical-align: middle; } @media (min-width: 981px) { .et_vertical_nav #main-header picture#logo source, .et_vertical_nav #main-header picture#logo img { margin-bottom: 28px; } } </style> <link rel='stylesheet' id='select2-css' href='https://objectbox.io/wordpress/wp-content/plugins/woocommerce/assets/css/select2.css?ver=9.3.3' type='text/css' media='all' /> <script type="text/javascript" id="cookie-notice-front-js-before"> /* <![CDATA[ */ var cnArgs = {"ajaxUrl":"https:\/\/objectbox.io\/wordpress\/wp-admin\/admin-ajax.php","nonce":"bd61c772f3","hideEffect":"none","position":"top","onScroll":true,"onScrollOffset":500,"onClick":true,"cookieName":"cookie_notice_accepted","cookieTime":31536000,"cookieTimeRejected":2592000,"globalCookie":false,"redirection":false,"cache":true,"revokeCookies":false,"revokeCookiesOpt":"automatic"}; /* ]]> */ </script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-content/plugins/cookie-notice/js/front.min.js?ver=2.4.18" id="cookie-notice-front-js"></script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" id="jquery-migrate-js"></script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-content/plugins/woocommerce/assets/js/jquery-blockui/jquery.blockUI.min.js?ver=2.7.0-wc.9.3.3" id="jquery-blockui-js" defer="defer" data-wp-strategy="defer"></script> <script type="text/javascript" id="wc-add-to-cart-js-extra"> /* <![CDATA[ */ var wc_add_to_cart_params = {"ajax_url":"\/wordpress\/wp-admin\/admin-ajax.php","wc_ajax_url":"\/?wc-ajax=%%endpoint%%","i18n_view_cart":"View cart","cart_url":"https:\/\/objectbox.io\/?page_id=37328","is_cart":"","cart_redirect_after_add":"no"}; /* ]]> */ </script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-content/plugins/woocommerce/assets/js/frontend/add-to-cart.min.js?ver=9.3.3" id="wc-add-to-cart-js" defer="defer" data-wp-strategy="defer"></script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-content/plugins/woocommerce/assets/js/js-cookie/js.cookie.min.js?ver=2.1.4-wc.9.3.3" id="js-cookie-js" defer="defer" data-wp-strategy="defer"></script> <script type="text/javascript" id="woocommerce-js-extra"> /* <![CDATA[ */ var woocommerce_params = {"ajax_url":"\/wordpress\/wp-admin\/admin-ajax.php","wc_ajax_url":"\/?wc-ajax=%%endpoint%%"}; /* ]]> */ </script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-content/plugins/woocommerce/assets/js/frontend/woocommerce.min.js?ver=9.3.3" id="woocommerce-js" defer="defer" data-wp-strategy="defer"></script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-content/plugins/woocommerce/assets/js/selectWoo/selectWoo.full.min.js?ver=1.0.9-wc.9.3.3" id="selectWoo-js" defer="defer" data-wp-strategy="defer"></script> <link rel="https://api.w.org/" href="https://objectbox.io/wp-json/" /><link rel="alternate" type="application/json" href="https://objectbox.io/wp-json/wp/v2/posts/31173" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://objectbox.io/wordpress/xmlrpc.php?rsd" /> <meta name="generator" content="WordPress 6.5.5" /> <meta name="generator" content="WooCommerce 9.3.3" /> <link rel='shortlink' href='https://objectbox.io/?p=31173' /> <link rel="alternate" type="application/json+oembed" href="https://objectbox.io/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fobjectbox.io%2Fsqlite-alternatives%2F" /> <link rel="alternate" type="text/xml+oembed" href="https://objectbox.io/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fobjectbox.io%2Fsqlite-alternatives%2F&format=xml" /> <style>.dbcs-clipboard-button { position: absolute; right: 1em; margin-top: 0.7em; font-family: 'ETmodules' !important; font-size: 16pt; opacity: 0.4; cursor: pointer; } .dbcs-clipboard-button:before { content: '\69'; } .dbcs-clipboard-button:hover { opacity: 1; } .dbcs-clipboard-button.dbcs-copied-to-clipboard { color: green; opacity: 1; } .dbcs-clipboard-button.dbcs-copied-to-clipboard:before { content: '\4e'; } .dbcs-clipboard-enabled .hljs-table td.hljs-line { padding-right: 55px; } .dbcs-clipboard-enabled .dbcs-clipboard-button { opacity: 1; background: rgba(240, 240, 240, 0.9) !important; padding: 7px; right: 0.35em; margin-top: 0.35em; border-radius: 4px } .dbcs-clipboard-enabled .dbcs-clipboard-button:before { opacity: 0.8; } .dbcs-clipboard-enabled .dbcs-clipboard-button:hover:before { opacity: 1; }</style><style> .et_pb_dmb_code_snippet pre code:before, #et_builder_outer_content .et_pb_dmb_code_snippet pre code:before{ font-family: monospace; } .et_pb_dmb_code_snippet pre code table.hljs-table td.hljs-line-number, #et_builder_outer_content .et_pb_dmb_code_snippet pre code table.hljs-table td.hljs-line-number { user-select: none; text-align: right; white-space: nowrap; vertical-align: top; } .et_pb_dmb_code_snippet pre code:not(.show_linenums) table.hljs-table td.hljs-line-number, #et_builder_outer_content .et_pb_dmb_code_snippet pre code:not(.show_linenums) table.hljs-table td.hljs-line-number, .et_pb_dmb_code_snippet pre code:not(.show_linenums) table.hljs-table col.hljs-line-numbers, #et_builder_outer_content .et_pb_dmb_code_snippet pre code:not(.show_linenums) table.hljs-table col.hljs-line-numbers { display: none; } </style> <style> .et_pb_dmb_code_snippet code.dbcs-wrap-lines .hljs-line * { white-space: pre-wrap; overflow-wrap: anywhere; } </style> <style> .et_pb_dmb_code_snippet { visibility: hidden; } </style> <!-- DO NOT COPY THIS SNIPPET! Start of Page Analytics Tracking for HubSpot WordPress plugin v11.1.66--> <script class="hsq-set-content-id" data-content-id="blog-post"> var _hsq = _hsq || []; _hsq.push(["setContentType", "blog-post"]); </script> <!-- DO NOT COPY THIS SNIPPET! End of Page Analytics Tracking for HubSpot WordPress plugin --> <script type="text/javascript"> (function(url){ if(/(?:Chrome\/26\.0\.1410\.63 Safari\/537\.31|WordfenceTestMonBot)/.test(navigator.userAgent)){ return; } var addEvent = function(evt, handler) { if (window.addEventListener) { document.addEventListener(evt, handler, false); } else if (window.attachEvent) { document.attachEvent('on' + evt, handler); } }; var removeEvent = function(evt, handler) { if (window.removeEventListener) { document.removeEventListener(evt, handler, false); } else if (window.detachEvent) { document.detachEvent('on' + evt, handler); } }; var evts = 'contextmenu dblclick drag dragend dragenter dragleave dragover dragstart drop keydown keypress keyup mousedown mousemove mouseout mouseover mouseup mousewheel scroll'.split(' '); var logHuman = function() { if (window.wfLogHumanRan) { return; } window.wfLogHumanRan = true; var wfscr = document.createElement('script'); wfscr.type = 'text/javascript'; wfscr.async = true; wfscr.src = url + '&r=' + Math.random(); (document.getElementsByTagName('head')[0]||document.getElementsByTagName('body')[0]).appendChild(wfscr); for (var i = 0; i < evts.length; i++) { removeEvent(evts[i], logHuman); } }; for (var i = 0; i < evts.length; i++) { addEvent(evts[i], logHuman); } })('//objectbox.io/?wordfence_lh=1&hid=B7FA68AA3A859C29F51B503B5BECEE69'); </script><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" /><style type="text/css" id="tve_global_variables">:root{--tcb-color-0:rgb(125, 220, 125);--tcb-color-0-h:120;--tcb-color-0-s:57%;--tcb-color-0-l:67%;--tcb-color-0-a:1;--tcb-gradient-0:linear-gradient(54deg, rgb(230, 25, 85) 0%, rgb(245, 150, 45) 64%, rgb(249, 229, 5) 100%, var(--tcb-color-0) 100%);--tcb-background-author-image:url(https://secure.gravatar.com/avatar/f5b9dacdc7f63c622a4d6ac2833705b8?s=256&d=mm&r=g);--tcb-background-user-image:url();--tcb-background-featured-image-thumbnail:url(https://objectbox.io/wordpress/wp-content/uploads/2024/05/SQliteAndSQLiteAlternatives2024_2.jpg);}</style> <noscript><style>.woocommerce-product-gallery{ opacity: 1 !important; }</style></noscript> <style type="text/css" id="custom-background-css"> body.custom-background { background-color: #f7f7f7; } </style> <script id='nitro-telemetry-meta' nitro-exclude>window.NPTelemetryMetadata={missReason: (!window.NITROPACK_STATE ? 'request type not allowed' : 'hit'),pageType: 'post',isEligibleForOptimization: false,}</script><script id='nitro-generic' nitro-exclude>(()=>{window.NitroPack=window.NitroPack||{coreVersion:"na",isCounted:!1};let e=document.createElement("script");if(e.src="https://nitroscripts.com/JNiKLBzGPsfbQJqUQoZqIbUrxBklWopT",e.async=!0,e.id="nitro-script",document.head.appendChild(e),!window.NitroPack.isCounted){window.NitroPack.isCounted=!0;let t=()=>{navigator.sendBeacon("https://to.getnitropack.com/p",JSON.stringify({siteId:"JNiKLBzGPsfbQJqUQoZqIbUrxBklWopT",url:window.location.href,isOptimized:!!window.IS_NITROPACK,coreVersion:"na",missReason:window.NPTelemetryMetadata?.missReason||"",pageType:window.NPTelemetryMetadata?.pageType||"",isEligibleForOptimization:!!window.NPTelemetryMetadata?.isEligibleForOptimization}))};(()=>{let e=()=>new Promise(e=>{"complete"===document.readyState?e():window.addEventListener("load",e)}),i=()=>new Promise(e=>{document.prerendering?document.addEventListener("prerenderingchange",e,{once:!0}):e()}),a=async()=>{await i(),await e(),t()};a()})(),window.addEventListener("pageshow",e=>{if(e.persisted){let i=document.prerendering||self.performance?.getEntriesByType?.("navigation")[0]?.activationStart>0;"visible"!==document.visibilityState||i||t()}})}})();</script><!-- Global site tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-68353717-3"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-68353717-3'); gtag('config', 'G-PNBER16ZJB'); </script> <!-- GitHub Buttons. --> <!-- <script async defer src="https://buttons.github.io/buttons.js"></script> --><style id='wp-fonts-local' type='text/css'> @font-face{font-family:Inter;font-style:normal;font-weight:300 900;font-display:fallback;src:url('https://objectbox.io/wordpress/wp-content/plugins/woocommerce/assets/fonts/Inter-VariableFont_slnt,wght.woff2') format('woff2');font-stretch:normal;} @font-face{font-family:Cardo;font-style:normal;font-weight:400;font-display:fallback;src:url('https://objectbox.io/wordpress/wp-content/plugins/woocommerce/assets/fonts/cardo_normal_400.woff2') format('woff2');} </style> <style type="text/css" id="thrive-default-styles"></style><link rel="icon" href="https://objectbox.io/wordpress/wp-content/uploads/2022/11/cropped-OB-square-transparent-logo-teal-48x48-1-32x32.png" sizes="32x32" /> <link rel="icon" href="https://objectbox.io/wordpress/wp-content/uploads/2022/11/cropped-OB-square-transparent-logo-teal-48x48-1-192x192.png" sizes="192x192" /> <link rel="apple-touch-icon" href="https://objectbox.io/wordpress/wp-content/uploads/2022/11/cropped-OB-square-transparent-logo-teal-48x48-1-180x180.png" /> <meta name="msapplication-TileImage" content="https://objectbox.io/wordpress/wp-content/uploads/2022/11/cropped-OB-square-transparent-logo-teal-48x48-1-270x270.png" /> <link rel="stylesheet" id="et-divi-customizer-global-cached-inline-styles" href="https://objectbox.io/wordpress/wp-content/et-cache/global/et-divi-customizer-global.min.css?ver=1730962523" /></head> <body class="post-template-default single single-post postid-31173 single-format-standard custom-background theme-Divi et-tb-has-template et-tb-has-header cookies-not-set woocommerce-no-js et_button_no_icon et_pb_button_helper_class et_pb_footer_columns3 et_cover_background windows et_pb_gutters3 et_pb_pagebuilder_layout et_full_width_page et_divi_theme et-db"> <div id="page-container"> <div id="et-boc" class="et-boc"> <header class="et-l et-l--header"> <div class="et_builder_inner_content et_pb_gutters3"><div class="et_pb_with_border et_pb_section et_pb_section_0_tb_header et_pb_sticky_module et_pb_with_background et_section_regular et_pb_section--with-menu" > <div class="et_pb_row et_pb_row_0_tb_header et_pb_row--with-menu"> <div class="et_pb_column et_pb_column_3_4 et_pb_column_0_tb_header et_pb_css_mix_blend_mode_passthrough et_pb_column--with-menu"> <div class="et_pb_module et_pb_code et_pb_code_0_tb_header"> <div class="et_pb_code_inner"><style> .dfh-2 .et_mobile_menu li:not(:last-child) a, .dfh-2 .nav li li:not(:last-child), .dfh-2 .et-menu-nav li.mega-menu>ul>li>a:first-child, .dfh-2 .et-menu-nav li.mega-menu ul li ul li:not(:last-child) a { border-bottom: 1px solid rgb(255,255,255,0.2) !important; } @media screen and (min-width: 981px) { .dfh-2 .sub-menu:before { color: #ffffff; } } </style></div> </div><div class="et_pb_module et_pb_code et_pb_code_1_tb_header"> <div class="et_pb_code_inner"><script> (function($) { function dfh_collapse_menu() { var ParentMenuItem = $('.dfh-2 .et_mobile_menu .menu-item-has-children > a'); ParentMenuItem.off('click').click(function() { $(this).attr('href', '#/'); $(this).parent().children().children().toggleClass('dfh-show-menu-items'); $(this).toggleClass('dfh-menu-switched-icon'); }); } $(window).load(function() { setTimeout(function() { dfh_collapse_menu(); }, 700); }); })(jQuery); </script> <style> .dfh-2 .et_mobile_menu .menu-item-has-children > a:after { content: '\50'; display: block !important; font-family: 'ETmodules'; font-size: 16px; font-weight: normal; position: absolute; right: 10px; top: 13px; } .dfh-2 .et_mobile_menu .menu-item-has-children > .dfh-menu-switched-icon:after { content: '\4f'; } .dfh-2 .et_mobile_menu .menu-item-has-children > a { position: relative; } .dfh-2 .et_mobile_menu .menu-item-has-children .sub-menu li { display: none; } .dfh-2 .et_mobile_menu .menu-item-has-children .sub-menu .dfh-show-menu-items { display: block; } .dfh-2 .nav li li { padding: 0 !important; } .dfh-2 .et_pb_menu .et_mobile_menu, .dfh-2 .et_mobile_menu { padding: 0 !important; border-width: 2px; border-radius: 5px; } .dfh-2 .et_pb_menu .et_mobile_menu a, .dfh-2 .et_mobile_menu a { padding: 12px 20px !important; } .dfh-2.et_pb_menu .et-menu-nav li.mega-menu ul.sub-menu { border-width: 2px !important; border-radius: 5px !important; padding: 10px 20px !important; width: 100% !important; } .dfh-2 .nav li.mega-menu li { border-bottom: none !important; } .et-db #et-boc .et-l .dfh-2 .et-menu-nav li.mega-menu li>a { width: 140px !important; } .dfh-2.et_pb_menu .et-menu-nav li.mega-menu ul.sub-menu a { padding: 12px 0 !important; } @media screen and (min-width: 981px) { .dfh-2 .et-menu > .menu-item-has-children > .sub-menu:before { font-family: ETmodules; content: '\42'; position: absolute; right: 20px; top: -17px; font-size: 30px; } .dfh-2 .et-menu > .menu-item-has-children.mega-menu > .sub-menu:before { content: ''; } .dfh-2 .et-menu .sub-menu .menu-item-has-children>a:first-child:after { content: "\35" !important; } .et-db #et-boc .et-l .dfh-2.et_pb_menu .et-menu-nav li ul.sub-menu li ul.sub-menu { left: 200px !important; top: 0; } .et-db #et-boc .et-l .dfh-2.et_pb_menu .et-menu-nav li.mega-menu ul.sub-menu li ul.sub-menu { left: 0 !important; padding: 0 !important; } } @media screen and (max-width: 980px) { .dfh-2 .et_pb_menu__wrap { margin-top: -8px; } } </style></div> </div><div class="et_pb_with_border et_pb_module et_pb_menu et_pb_menu_0_tb_header dfh-2 et_pb_bg_layout_light et_pb_text_align_left et_dropdown_animation_fade et_pb_menu--with-logo et_pb_menu--style-left_aligned"> <div class="et_pb_menu_inner_container clearfix"> <div class="et_pb_menu__logo-wrap"> <div class="et_pb_menu__logo"> <a href="https://objectbox.io/" ><img decoding="async" width="500" height="120" src="https://objectbox.io/wordpress/wp-content/uploads/2024/09/logo-white-500pxf.png" alt="" class="wp-image-259569" data-et-multi-view="{"schema":{"attrs":{"desktop":{"src":"https:\/\/objectbox.io\/wordpress\/wp-content\/uploads\/2024\/09\/logo-white-500pxf.png","alt":"","class":"wp-image-259569"},"tablet":{"src":"https:\/\/objectbox.io\/wordpress\/wp-content\/uploads\/2021\/01\/logo-white-500px-300x72.png"}}},"slug":"et_pb_menu","hover_selector":".et_pb_menu_0_tb_header .et_pb_menu__logo-wrap .et_pb_menu__logo img"}" /></a> </div> </div> <div class="et_pb_menu__wrap"> <div class="et_pb_menu__menu"> <nav class="et-menu-nav"><ul id="menu-main-menu" class="et-menu nav"><li class="first-level et_pb_menu_page_id-35279 menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-35279"><a>Product</a> <ul class="sub-menu"> <li class="et_pb_menu_page_id-257334 menu-item menu-item-type-post_type menu-item-object-page menu-item-257919"><a href="https://objectbox.io/vector-database-for-ondevice-ai/">The vector database for on-device AI</a></li> <li class="second-level et_pb_menu_page_id-33019 menu-item menu-item-type-post_type menu-item-object-page menu-item-33433"><a href="https://objectbox.io/sync/">Data Sync</a></li> <li class="second-level et_pb_menu_page_id-223067 menu-item menu-item-type-post_type menu-item-object-page menu-item-223155"><a title="Embedded Database for Embedded Devices" href="https://objectbox.io/embedded-database/">Embedded Database</a></li> <li class="second-level et_pb_menu_page_id-35148 menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-35277"><a href="https://objectbox.io/mobile-database/">Mobile Database</a> <ul class="sub-menu"> <li class="et_pb_menu_page_id-222066 menu-item menu-item-type-post_type menu-item-object-page menu-item-222378"><a href="https://objectbox.io/swift-database-for-ios/">Swift Database for iOS</a></li> <li class="et_pb_menu_page_id-223156 menu-item menu-item-type-post_type menu-item-object-page menu-item-223274"><a title="Android Database" href="https://objectbox.io/android-database/">Android Database</a></li> <li class="et_pb_menu_page_id-223479 menu-item menu-item-type-post_type menu-item-object-page menu-item-223868"><a href="https://objectbox.io/flutter-database/">Flutter Database</a></li> </ul> </li> <li class="et_pb_menu_page_id-258495 menu-item menu-item-type-post_type menu-item-object-page menu-item-258707"><a href="https://objectbox.io/time-series-database/">Time Series DB</a></li> <li class="second-level et_pb_menu_page_id-34014 menu-item menu-item-type-post_type menu-item-object-page menu-item-34399"><a href="https://objectbox.io/iot-edge-computing-database-decentralized-data-flows/">IoT DB for the edge</a></li> <li class="second-level et_pb_menu_page_id-35961 menu-item menu-item-type-post_type menu-item-object-page menu-item-41668"><a href="https://objectbox.io/edgex/">ObjectBox EdgeX</a></li> </ul> </li> <li class="first-level et_pb_menu_page_id-39185 menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-39185"><a>Solutions</a> <ul class="sub-menu"> <li class="second-level et_pb_menu_page_id-260370 menu-item menu-item-type-post_type menu-item-object-page menu-item-260694"><a href="https://objectbox.io/connected-car-data-storage-and-sync/">Connected Cars</a></li> <li class="second-level et_pb_menu_page_id-38910 menu-item menu-item-type-post_type menu-item-object-page menu-item-39178"><a href="https://objectbox.io/iiot-edge-computing/">Industrial IoT</a></li> <li class="second-level et_pb_menu_page_id-49453 menu-item menu-item-type-post_type menu-item-object-page menu-item-49867"><a href="https://objectbox.io/energy-edge-computing/">Energy Industry</a></li> <li class="second-level et_pb_menu_page_id-38644 menu-item menu-item-type-post_type menu-item-object-page menu-item-39005"><a href="https://objectbox.io/smart-mobility/">Smart Mobility</a></li> <li class="second-level et_pb_menu_page_id-46718 menu-item menu-item-type-post_type menu-item-object-page menu-item-48012"><a href="https://objectbox.io/retail-edge-computing/">Retail Services</a></li> <li class="second-level et_pb_menu_page_id-50045 menu-item menu-item-type-post_type menu-item-object-page menu-item-50291"><a href="https://objectbox.io/games/">Games</a></li> <li class="second-level et_pb_menu_page_id-34759 menu-item menu-item-type-post_type menu-item-object-page menu-item-35893"><a href="https://objectbox.io/iot-edge-computing-database-decentralized-data-flows/iot-use-cases-edge-computing/">IoT Use Cases</a></li> </ul> </li> <li class="first-level et_pb_menu_page_id-28602 menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-28602"><a>Developers</a> <ul class="sub-menu"> <li class="second-level et_pb_menu_page_id-35049 menu-item menu-item-type-post_type menu-item-object-page menu-item-35212"><a href="https://objectbox.io/offline-first-mobile-database/">Overview</a></li> <li class="second-level et_pb_menu_page_id-53043 menu-item menu-item-type-custom menu-item-object-custom menu-item-53043"><a href="https://sync.objectbox.io/">Sync Docs</a></li> <li class="second-level et_pb_menu_page_id-35273 menu-item menu-item-type-custom menu-item-object-custom menu-item-35273"><a href="https://docs.objectbox.io/">Java Docs</a></li> <li class="second-level et_pb_menu_page_id-35275 menu-item menu-item-type-custom menu-item-object-custom menu-item-35275"><a href="https://cpp.objectbox.io/">C / C++ Docs</a></li> <li class="second-level et_pb_menu_page_id-35364 menu-item menu-item-type-custom menu-item-object-custom menu-item-35364"><a href="https://golang.objectbox.io/">Go Docs</a></li> <li class="second-level et_pb_menu_page_id-35281 menu-item menu-item-type-custom menu-item-object-custom menu-item-35281"><a href="https://docs.objectbox.io/kotlin-support">Kotlin Docs</a></li> <li class="second-level et_pb_menu_page_id-35274 menu-item menu-item-type-custom menu-item-object-custom menu-item-35274"><a href="https://swift.objectbox.io/">Swift Docs</a></li> <li class="second-level et_pb_menu_page_id-50071 menu-item menu-item-type-custom menu-item-object-custom menu-item-50071"><a href="https://github.com/objectbox/objectbox-dart">Flutter / Dart</a></li> <li class="second-level et_pb_menu_page_id-50463 menu-item menu-item-type-post_type menu-item-object-page menu-item-50484"><a href="https://objectbox.io/offline-docs-pdf-download/">Offline Docs / PDF Download</a></li> <li class="second-level et_pb_menu_page_id-30804 menu-item menu-item-type-post_type menu-item-object-page menu-item-30829"><a href="https://objectbox.io/faq/">FAQ</a></li> </ul> </li> <li class="first-level et_pb_menu_page_id-33340 menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-33736"><a href="https://objectbox.io/about-us/">Company</a> <ul class="sub-menu"> <li class="second-level et_pb_menu_page_id-33340 menu-item menu-item-type-post_type menu-item-object-page menu-item-33737"><a href="https://objectbox.io/about-us/">About Us</a></li> <li class="second-level et_pb_menu_page_id-32135 menu-item menu-item-type-post_type menu-item-object-page menu-item-32157"><a href="https://objectbox.io/jobs/">Jobs</a></li> <li class="second-level et_pb_menu_page_id-35211 menu-item menu-item-type-post_type menu-item-object-page menu-item-35268"><a href="https://objectbox.io/events/">Events</a></li> <li class="second-level et_pb_menu_page_id-35703 menu-item menu-item-type-post_type menu-item-object-page menu-item-35730"><a href="https://objectbox.io/iot-mobile-insights-learnings-research-studies/">Insights</a></li> <li class="et_pb_menu_page_id-50886 menu-item menu-item-type-post_type menu-item-object-page menu-item-223175"><a href="https://objectbox.io/software-we-love/">Software we 🤍</a></li> <li class="et_pb_menu_page_id-257704 menu-item menu-item-type-post_type menu-item-object-page menu-item-257890"><a href="https://objectbox.io/contact-us/">Contact us</a></li> </ul> </li> <li class="first-level et_pb_menu_page_id-31231 menu-item menu-item-type-post_type menu-item-object-page menu-item-31319"><a href="https://objectbox.io/blog/">Blog</a></li> <li class="et_pb_menu_page_id-259820 menu-item menu-item-type-post_type menu-item-object-page menu-item-260029"><a href="https://objectbox.io/mongodb/"><font color="#17A6A6">MongoDB Connector</font></a></li> </ul></nav> </div> <div class="et_mobile_nav_menu"> <div class="mobile_nav closed"> <span class="mobile_menu_bar"></span> </div> </div> </div> </div> </div> </div><div class="et_pb_column et_pb_column_1_4 et_pb_column_1_tb_header et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_button_module_wrapper et_pb_button_0_tb_header_wrapper et_pb_button_alignment_center et_pb_module "> <a class="et_pb_button et_pb_button_0_tb_header et_pb_bg_layout_dark" href="https://github.com/objectbox/" target="_blank" data-icon="">45.8k</a> </div><div class="et_pb_button_module_wrapper et_pb_button_1_tb_header_wrapper et_pb_button_alignment_center et_pb_module "> <a class="et_pb_button et_pb_button_1_tb_header et_pb_bg_layout_dark" href="https://objectbox.io/offline-first-mobile-database/">Get started</a> </div> </div> </div> </div> </div> </header> <div id="et-main-area"> <div id="main-content"> <div class="container"> <div id="content-area" class="clearfix"> <div id="left-area"> <article id="post-31173" class="et_pb_post post-31173 post type-post status-publish format-standard has-post-thumbnail hentry category-android category-edge-database category-iot category-mobile-database tag-edge-computing tag-iot tag-mobile-database tag-synchronization"> <div class="entry-content"> <div class="et-l et-l--post"> <div class="et_builder_inner_content et_pb_gutters3"> <div class="et_pb_section et_pb_section_0 et_pb_with_background et_pb_fullwidth_section et_section_regular" > <section class="et_pb_module et_pb_fullwidth_header et_pb_fullwidth_header_0 et_hover_enabled et_pb_text_align_left et_pb_bg_layout_dark"> <div class="et_pb_fullwidth_header_container left"> <div class="header-content-container center"> <div class="header-content"> <h1 class="et_pb_module_header">SQLite and SQLite alternatives - databases for the Mobile and IoT edge</h1> <span class="et_pb_fullwidth_header_subhead">Overview of SQLite and SQLite alternatives as part of the mobile / edge database market with a comprehensive comparison matrix (last updated autumn 2024)</span> <div class="et_pb_header_content_wrapper"></div> </div> </div> </div> <div class="et_pb_fullwidth_header_overlay"></div> <div class="et_pb_fullwidth_header_scroll"></div> </section> </div><div class="et_pb_section et_pb_section_1 et_section_regular" > <div class="et_pb_row et_pb_row_0"> <div class="et_pb_column et_pb_column_4_4 et_pb_column_0 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_text et_pb_text_0 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><p><span style="font-weight: 400;">Digitalization is still on the rise, as is the number of connected devices (from </span><a href="https://www.statista.com/statistics/1101442/iot-number-of-connected-devices-worldwide/"><span style="font-weight: 400;">13 billion connected IoT devices</span></a><span style="font-weight: 400;"> + </span><a href="https://www.statista.com/statistics/245501/multiple-mobile-device-ownership-worldwide/#:~:text=In%202021%2C%20the%20number%20of,devices%20compared%20to%202020%20levels."><span style="font-weight: 400;">15 billion mobile devices operating</span></a><span style="font-weight: 400;"> in 2021 already). Data volumes are growing accordingly ( </span><a href="https://earthweb.com/how-much-data-is-created-every-day/"><span style="font-weight: 400;">3.5 quintillion bytes of data is produced daily in 2023</span></a><span style="font-weight: 400;">), and centralised (typically cloud-based) computing canbot support all the current needs. This has led to </span><a href="https://objectbox.io/why-edge-computing-is-more-relevant-in-2021-than-ever/"><span style="font-weight: 400;">a shift from the cloud to the edge</span></a><span style="font-weight: 400;">. </span></p> <p><span style="font-weight: 400;">Therefore, there is a renewed need for on-device databases like SQLite and SQLite alternatives to persist and manage data on edge devices. On top, due to the distributed nature of the edge, there is a need to manage data flows to / from and between edge devices. This can be done with</span><span style="font-size: 15px;"> </span><a href="https://objectbox.io/what-is-an-edge-database-and-why-do-you-need-one/" style="font-size: 15px;">Edge Databases</a><span style="font-size: 15px;"> that provide a </span><a href="https://sync.objectbox.io/" style="font-size: 15px;">Data Sync</a><span style="font-size: 15px;"> functionality (SQLite alternatives only, as SQLite doesn’t support this). Below, we’ll take a close look at SQLite and its alternatives with consideration of today’s needs.</span></p> <p><span style="font-weight: 400;"></span></p> <h2><span style="font-weight: 400;">Databases for the Edge</span></h2> <p><span style="font-weight: 400;">While being quite an established market with many players, the database market is still growing consistently and significantly. The reason is that databases are at the <strong>core of almost any digital solution</strong>, and </span><a href="https://objectbox.io/connecting-database-performance-and-business-value/"><span style="font-weight: 400;">directly impact business value and </span></a><span style="font-weight: 400;">therefore never going out of fashion. With the rapid evolvements in the tech industry, however, databases evolve too. This, in turn, yields new database types and categories. We have seen the rise of NoSQL databases in the last 20 years, and more recently some novel database technologies, like graph databases and time-series databases, and </span><a href="https://objectbox.io/vector-database/"><span style="font-weight: 400;">vector databases</span></a><span style="font-weight: 400;">.</span></p> <p><span style="font-size: 15px;"><span style="font-weight: 400;">With AI and accordingly vector databases being all the hype since 2022/2023, the database market is indeed experiencing fresh attention. Due to the speed with which AI is evolving, we’re however already <a href="https://www.linkedin.com/pulse/power-vector-databases-mobile-restricted-devices-dollinger-aquje/">leaving the “mainframe era of AI” and entering the distributed Edge AI space</a>. With SQLite not supporting vector search and related vector database functions, this adds a new dimension to this ever-present topic. There is a need for <a href="https://objectbox.io/the-first-on-device-vector-database-objectbox-4-0/">local, on-device vector databases</a> to support on-device AI that’s independent of an Internet connection, reliably fast, and keeps data on the device (100% private). </span><br /></span></p> <p>We’re expecting <a href="https://www.linkedin.com/pulse/power-vector-databases-mobile-restricted-devices-dollinger-aquje/">vector databases that run locally on a wide variety of devices (aka Edge Vector Databases)</a> to become the next big thing, surpassing even what we have seen happening in the server vector database space. And we wouldn’t be astonished if the synchronizing of vector data is a game changer for Edge AI. Time will tell 😉</p> <p><span style="font-weight: 400;"><br />Both, the shift back from a centralised towards a decentralised paradigm, and the growing number of restricted devices call for a “new type” of an established database paradigm. SQLite has been around for more than 20 years and for good reason, but the current market shift back to decentralized computing happens in a new environment with new requirements. Hence, the need for a “new” database type, based on a well-established database type: “Edge databases”. Accordingly, a need for SQLite alternatives that consider the need for decentralized data flows and AI functionalities (depending on the use case of course; after all SQLite is a great database).</span></p></div> </div><div class="et_pb_module et_pb_image et_pb_image_0"> <span class="et_pb_image_wrap "><img decoding="async" width="1024" height="435" src="https://objectbox.io/wordpress/wp-content/uploads/2024/05/database-evolution-towards-edge-vector-databases-1024x435.jpg" alt="database-evolution-towards-edge-vector-databases" title="database-evolution-towards-edge-vector-databases" class="wp-image-258159" /></span> </div><div class="et_pb_module et_pb_toggle et_pb_toggle_0 et_pb_toggle_item et_pb_toggle_close"> <h5 class="et_pb_toggle_title">What is an Edge Database?</h5> <div class="et_pb_toggle_content clearfix"><p><span style="font-weight: 400;">Edge databases are a type of databases that are optimised for local data storage on restricted devices, like embedded devices, Mobile, and IoT. Because they run on-device, they need to be especially resource-efficient (e.g. with regards to battery use, CPU consumption, memory, and footprint). The term “edge database” is becoming more widely-used every year, especially in the IoT industry. In IoT, the difference between cloud-based databases and ones that run locally (</span><a href="https://objectbox.io/top-5-reasons-why-edge-computing-crucial-for-iot/"><span style="font-weight: 400;">and therefore support Edge Computing</span></a><span style="font-weight: 400;">) is crucial. </span></p></div> </div><div class="et_pb_module et_pb_toggle et_pb_toggle_1 et_pb_toggle_item et_pb_toggle_close"> <h5 class="et_pb_toggle_title">What is a Mobile Database?</h5> <div class="et_pb_toggle_content clearfix"><p><span style="font-weight: 400;">We look at mobile databases as a subset of edge databases that run on mobile devices. The difference between the two terms lies mainly in the supported operating systems / types of devices. Unless Android and iOS are supported, an edge database is not really suited for the mobile device / smartphone market. In this article, we will use the term “mobile database” only as “database that runs locally on a mobile (edge) device and stores data on the device”. </span><span style="font-weight: 400;">Therefore, we also refer to it as an </span><b>“on-device” database</b><span style="font-weight: 400;">.</span></p></div> </div> </div> </div><div class="et_pb_row et_pb_row_1"> <div class="et_pb_column et_pb_column_4_4 et_pb_column_1 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_text et_pb_text_1 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><h2>What are the advantages and disadvantages of working with SQLite?</h2> <p><span style="font-weight: 400;">SQLite is a </span><a href="https://en.wikipedia.org/wiki/Relational_database"><span style="font-weight: 400;">relational database</span></a><span style="font-weight: 400;"> that is clearly the most established database suitable to run on edge devices. Moreover, it is probably the only “established” mobile database. It was designed in 2000 by </span><a href="https://en.wikipedia.org/wiki/D._Richard_Hipp"><span style="font-weight: 400;">Richard Hipp</span></a><span style="font-weight: 400;"> and has been embedded with iOS and Android since the beginning. Now let’s have a quick look at its main advantages and disadvantages:</span></p></div> </div><div class="et_pb_module et_pb_text et_pb_text_2 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><table style="width: 100%; height: 5%;" border="1%"> <tbody> <tr style="height: 2,5%;"> <td style="width: 50%; height: 2,5%; text-align: center;">Advantages</td> <td style="width: 50%; height: 2,5%; text-align: center;"> Disadvantages</td> </tr> <tr style="height: 2,5%;"> <td style="width: 5-%; height: 2,5%; text-align: left;"> <ul> <li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">20+ years old (should be stable ;))</span></li> <li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Toolchain, e.g. DB browser</span></li> <li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">No dependencies, is included with Android and iOS</span></li> <li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Developers can define exactly the data schema they want</span></li> <li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Full control, e.g. handwritten SQL queries</span></li> <li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">SQL is a powerful and established query language, and SQLite supports most of it</span></li> <li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Debuggable data: developers can grab the database file and analyse it</span></li> </ul> </td> <td style="width: 50%; height: 2,5%; text-align: center;"> <ul> <li style="font-weight: 400; text-align: left;" aria-level="1"><span style="font-weight: 400;">20+ years old ( less state-of-the-art tech)</span></li> <li style="font-weight: 400; text-align: left;" aria-level="1"><span style="font-weight: 400;">Using SQLite means a lot of boilerplate code and thus inefficiencies ( maintaining long running apps can be quite painful)</span></li> <li style="font-weight: 400; text-align: left;" aria-level="1"><span style="font-weight: 400;">No compile time checks (e.g. SQL queries)</span></li> <li style="text-align: left;"><span style="font-weight: 400;">SQL is another language to master, and can impact your app’s efficiency / performance significantly…</span><span style="font-weight: 400;"></span></li> <li style="font-weight: 400; text-align: left;" aria-level="1"><span style="font-weight: 400;">The performance of SQLite is unreliable</span></li> <li style="font-weight: 400; text-align: left;" aria-level="1"><span style="font-weight: 400;">SQL queries can get long and complicated</span></li> <li style="font-weight: 400; text-align: left;" aria-level="1"><span style="font-weight: 400;">Testability (how to mock a database?)</span></li> <li style="font-weight: 400; text-align: left;" aria-level="1"><span style="font-weight: 400;">Especially when database views are involved, maintainability may suffer with SQLite</span></li> </ul> </td> </tr> </tbody> </table> <p> </p></div> </div><div class="et_pb_module et_pb_text et_pb_text_3 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><h2>What are the SQLite alternatives?</h2> <p><span style="font-weight: 400;">There are a bunch of options for making your life easier, if you want to use SQLite. You can use an object abstraction on top of it, an object-Relational-Mapper (</span><a href="https://greenrobot.org/android/sqlite-access-with-an-orm-faq/"><span style="font-weight: 400;">ORM</span></a><span style="font-weight: 400;">), for instance </span><a href="http://greenrobot.org/greendao/"><span style="font-weight: 400;">greenDAO</span></a><span style="font-weight: 400;">, to avoid writing lots of SQL. However, you will typically still need to learn SQL and SQLite at some point. So what you really want is a full blown database alternative, like any of these: Couchbase Lite, Interbase, LevelDB, </span><a href="https://github.com/objectbox"><span style="font-weight: 400;">ObjectBox</span></a><span style="font-weight: 400;">, Oracle Berkeley DB, Mongo Realm, SnappyDB, SQL Anywhere, or UnQLite.</span></p> <p><span style="font-weight: 400;">While SQLite really is designed for small devices, people do run it on the server / cloud too. Actually, any database that runs efficiently locally, will be highly efficient on big servers too, making them a sustainable lightweight choice for some scenarios. However, for server / cloud databases, there are a lot of alternatives you can use as a replacement like e.g. </span><a href="https://en.wikipedia.org/wiki/MySQL"><span style="font-weight: 400;">MySQL</span></a><span style="font-weight: 400;">, </span><a href="https://en.wikipedia.org/wiki/MongoDB"><span style="font-weight: 400;">MongoDB</span></a><span style="font-weight: 400;">, or </span><a href="https://en.wikipedia.org/wiki/Firebase"><span style="font-weight: 400;">Cloud Firestore</span></a><span style="font-weight: 400;">.</span></p> <p><span style="font-weight: 400;">Bear in mind that, if you are looking to host your database in the cloud with apps running on small distributed devices (e.g. mobile apps, IoT apps, any apps on embedded devices etc.), there are some difficulties. Firstly, this will result in higher latency, i.e. slow response-rates. Secondly, the </span><a href="https://objectbox.io/should-android-app-developers-care-about-edge-computing/"><span style="font-weight: 400;">offline capabilities</span></a><span style="font-weight: 400;"> will be highly limited or absent. As a result, you might have to deal with increased networking costs, which is not only reflected in dollars, </span><a href="https://objectbox.io/why-do-we-need-edge-computing-for-a-sustainable-future/"><span style="font-weight: 400;">but also CO2 emissions</span></a><span style="font-weight: 400;">. On top, it means all the data from all the different app users is stored in one central place. This means that any kind of data breach will affect all your and your users’ data. Most importantly, you will likely be giving your cloud / database provider rights to that data. (Consider reading the general terms diligently). If you care about privacy and data ownership, you might therefore want to consider a local database option, as in an Edge Database. This way you can decide, possibly limit, what data you sync to a central instance (like the cloud or an on-premise server). </span></p> <h2><span style="font-weight: 400;">SQLite alternatives Comparison Matrix</span></h2> <p><span style="font-weight: 400;">To give you an overview, we have compiled a comparison table including SQLite and SQLite alternatives. In this matrix we look at databases that we believe are apt to run on edge devices. Our rule of thumb is the databases’ ability to run on Raspberry Pi type size devices. <a href="https://objectbox.io/2024-sqlite-alternatives-comparison-matrix.htm" target="_blank" rel="noopener">If you’re reading this on mobile, click here to view the full matrix.</a></span></p></div> </div> </div> </div> </div><div class="et_pb_section et_pb_section_2 et_pb_fullwidth_section et_section_regular" > <div class="et_pb_module et_pb_fullwidth_code et_pb_fullwidth_code_0"> <div class="et_pb_code_inner"><html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"> <head> <meta http-equiv=Content-Type content="text/html; charset=windows-1252"> <meta name=ProgId content=Excel.Sheet> <meta name=Generator content="Microsoft Excel 15"> <link rel=File-List href="2024-10-sqlite-alternatives-comparison-matrix_files/filelist.xml"> <style id="Book1_4603_Styles"> <!--table {mso-displayed-decimal-separator:"\,"; mso-displayed-thousand-separator:"\.";} .font54603 {color:black; font-size:8.0pt; font-weight:700; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0;} .xl154603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:black; font-size:11.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Calibri, sans-serif; mso-font-charset:0; mso-number-format:General; text-align:general; vertical-align:bottom; mso-background-source:auto; mso-pattern:auto; white-space:nowrap;} .xl654603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:black; font-size:10.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:none; border-right:.5pt solid black; border-bottom:.5pt solid black; border-left:none; background:#DDF2F0; mso-pattern:black none; white-space:normal;} .xl664603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:black; font-size:10.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:none; border-right:.5pt solid black; border-bottom:.5pt solid black; border-left:none; background:white; mso-pattern:black none; white-space:normal;} .xl674603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:#393939; font-size:10.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:none; border-right:.5pt solid black; border-bottom:.5pt solid black; border-left:none; background:#DDF2F0; mso-pattern:black none; white-space:normal;} .xl684603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:black; font-size:10.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:.5pt solid black; border-right:.5pt solid black; border-bottom:none; border-left:.5pt solid black; background:white; mso-pattern:black none; white-space:normal;} .xl694603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:black; font-size:10.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Calibri, sans-serif; mso-font-charset:0; mso-number-format:General; text-align:general; vertical-align:bottom; mso-background-source:auto; mso-pattern:auto; white-space:nowrap;} .xl704603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:black; font-size:10.0pt; font-weight:700; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:none; border-right:.5pt solid black; border-bottom:.5pt solid black; border-left:1.0pt solid windowtext; background:#DDF2F0; mso-pattern:black none; white-space:normal;} .xl714603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:black; font-size:10.0pt; font-weight:700; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:none; border-right:.5pt solid black; border-bottom:.5pt solid black; border-left:1.0pt solid windowtext; background:white; mso-pattern:black none; white-space:normal;} .xl724603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:black; font-size:10.0pt; font-weight:700; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:.5pt solid black; border-right:.5pt solid black; border-bottom:none; border-left:1.0pt solid windowtext; background:white; mso-pattern:black none; white-space:normal;} .xl734603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:black; font-size:11.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:none; border-right:1.0pt solid windowtext; border-bottom:.5pt solid black; border-left:none; background:#DDF2F0; mso-pattern:black none; white-space:nowrap;} .xl744603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:black; font-size:10.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:none; border-right:1.0pt solid windowtext; border-bottom:.5pt solid black; border-left:none; background:#DDF2F0; mso-pattern:black none; white-space:normal;} .xl754603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:black; font-size:10.0pt; font-weight:700; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:none; border-right:.5pt solid black; border-bottom:1.0pt solid windowtext; border-left:1.0pt solid windowtext; background:#DDF2F0; mso-pattern:black none; white-space:normal;} .xl764603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:black; font-size:10.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:none; border-right:.5pt solid black; border-bottom:1.0pt solid windowtext; border-left:none; background:#DDF2F0; mso-pattern:black none; white-space:normal;} .xl774603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:white; font-size:11.0pt; font-weight:700; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:1.0pt solid windowtext; border-right:.5pt solid black; border-bottom:1.0pt solid windowtext; border-left:1.0pt solid windowtext; background:#46BDC6; mso-pattern:black none; white-space:normal;} .xl784603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:white; font-size:11.0pt; font-weight:700; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:1.0pt solid windowtext; border-right:.5pt solid black; border-bottom:1.0pt solid windowtext; border-left:none; background:#46BDC6; mso-pattern:black none; white-space:normal;} .xl794603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:white; font-size:10.0pt; font-weight:700; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:1.0pt solid windowtext; border-right:.5pt solid black; border-bottom:1.0pt solid windowtext; border-left:none; background:#46BDC6; mso-pattern:black none; white-space:normal;} .xl804603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:white; font-size:11.0pt; font-weight:700; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:1.0pt solid windowtext; border-right:1.0pt solid windowtext; border-bottom:1.0pt solid windowtext; border-left:none; background:#46BDC6; mso-pattern:black none; white-space:normal;} .xl814603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:#17A6A6; font-size:10.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:none; border-right:.5pt solid black; border-bottom:.5pt solid black; border-left:none; background:#DDF2F0; mso-pattern:black none; white-space:normal;} .xl824603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:#17A6A6; font-size:11.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:none; border-right:1.0pt solid windowtext; border-bottom:.5pt solid black; border-left:none; background:#DDF2F0; mso-pattern:black none; white-space:normal;} .xl834603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:#17A6A6; font-size:11.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:none; border-right:1.0pt solid windowtext; border-bottom:.5pt solid black; border-left:none; background:white; mso-pattern:black none; white-space:normal;} .xl844603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:#17A6A6; font-size:11.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:none; border-right:1.0pt solid windowtext; border-bottom:none; border-left:none; background:white; mso-pattern:black none; white-space:normal;} .xl854603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:#17A6A6; font-size:11.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:none; border-right:.5pt solid black; border-bottom:.5pt solid black; border-left:none; background:white; mso-pattern:black none; white-space:nowrap;} .xl864603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:#17A6A6; font-size:11.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:none; border-right:1.0pt solid windowtext; border-bottom:1.0pt solid windowtext; border-left:none; background:#DDF2F0; mso-pattern:black none; white-space:normal;} .xl874603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:#17A6A6; font-size:10.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:none; border-right:.5pt solid black; border-bottom:1.0pt solid windowtext; border-left:none; background:#DDF2F0; mso-pattern:black none; white-space:normal;} .xl884603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:#17A6A6; font-size:11.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:none; border-right:.5pt solid black; border-bottom:.5pt solid black; border-left:none; background:#DDF2F0; mso-pattern:black none; white-space:normal;} .xl894603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:#17A6A6; font-size:10.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:none; border-right:.5pt solid black; border-bottom:.5pt solid black; border-left:none; background:white; mso-pattern:black none; white-space:normal;} .xl904603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:#17A6A6; font-size:11.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:none; border-right:.5pt solid black; border-bottom:.5pt solid black; border-left:none; background:white; mso-pattern:black none; white-space:normal;} .xl914603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:#17A6A6; font-size:10.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:.5pt solid black; border-right:.5pt solid black; border-bottom:none; border-left:.5pt solid black; background:white; mso-pattern:black none; white-space:normal;} .xl924603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:#17A6A6; font-size:10.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:none; border-right:.5pt solid black; border-bottom:.5pt solid black; border-left:none; background:white; mso-pattern:black none; white-space:normal;} .xl934603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:black; font-size:9.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:none; border-right:.5pt solid black; border-bottom:.5pt solid black; border-left:none; background:white; mso-pattern:black none; white-space:normal;} .xl944603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:#0563C1; font-size:11.0pt; font-weight:400; font-style:normal; text-decoration:underline; text-underline-style:single; font-family:Calibri, sans-serif; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:none; border-right:.5pt solid black; border-bottom:.5pt solid black; border-left:none; background:#DDF2F0; mso-pattern:black none; white-space:normal;} .xl954603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:#0563C1; font-size:11.0pt; font-weight:400; font-style:normal; text-decoration:underline; text-underline-style:single; font-family:Calibri, sans-serif; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:none; border-right:1.0pt solid windowtext; border-bottom:.5pt solid black; border-left:none; background:white; mso-pattern:black none; white-space:normal;} .xl964603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:black; font-size:11.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Calibri, sans-serif; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:.5pt solid black; border-right:.5pt solid windowtext; border-bottom:.5pt solid windowtext; border-left:.5pt solid black; mso-background-source:auto; mso-pattern:auto; white-space:normal;} .xl974603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:windowtext; font-size:10.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:none; border-right:.5pt solid black; border-bottom:.5pt solid black; border-left:none; background:white; mso-pattern:black none; white-space:normal;} --> </style> </head> <body> <!--[if !excel]> <![endif]--> <!--The following information was generated by Microsoft Excel's Publish as Web Page wizard.--> <!--If the same item is republished from Excel, all information between the DIV tags will be replaced.--> <!-----------------------------> <!--START OF OUTPUT FROM EXCEL PUBLISH AS WEB PAGE WIZARD --> <!-----------------------------> <div id="Book1_4603" align=center x:publishsource="Excel"> <table border=0 cellpadding=0 cellspacing=0 width=1446 style='border-collapse: collapse;table-layout:fixed;width:1088pt'> <col width=102 style='mso-width-source:userset;mso-width-alt:3730;width:77pt'> <col width=238 style='mso-width-source:userset;mso-width-alt:8704;width:179pt'> <col class=xl694603 width=104 style='mso-width-source:userset;mso-width-alt: 3803;width:78pt'> <col width=70 style='mso-width-source:userset;mso-width-alt:2560;width:53pt'> <col width=122 style='mso-width-source:userset;mso-width-alt:4461;width:92pt'> <col width=83 style='mso-width-source:userset;mso-width-alt:3035;width:62pt'> <col width=64 style='width:48pt'> <col width=72 style='mso-width-source:userset;mso-width-alt:2633;width:54pt'> <col width=113 style='mso-width-source:userset;mso-width-alt:4132;width:85pt'> <col class=xl694603 width=118 style='mso-width-source:userset;mso-width-alt: 4315;width:89pt'> <col class=xl694603 width=113 style='mso-width-source:userset;mso-width-alt: 4132;width:85pt'> <col width=97 style='mso-width-source:userset;mso-width-alt:3547;width:73pt'> <col width=150 style='mso-width-source:userset;mso-width-alt:5485;width:113pt'> <tr height=61 style='height:45.75pt'> <td height=61 class=xl774603 width=102 style='height:45.75pt;width:77pt'>Edge Database</td> <td class=xl784603 width=238 style='width:179pt'>Short description</td> <td class=xl794603 width=104 style='width:78pt'>License / business model</td> <td class=xl784603 width=70 style='width:53pt'>Android / iOS*</td> <td class=xl784603 width=122 style='width:92pt'>Type of data stored</td> <td class=xl784603 width=83 style='width:62pt'>Central Data Sync</td> <td class=xl784603 width=64 style='width:48pt'>P2P Data Sync</td> <td class=xl784603 width=72 style='width:54pt'>Offline Sync (Edge)</td> <td class=xl784603 width=113 style='width:85pt'>Data level encryption</td> <td class=xl794603 width=118 style='width:89pt'>Flutter / Dart support</td> <td class=xl794603 width=113 style='width:85pt'>Vector Database (AI support)</td> <td class=xl784603 width=97 style='width:73pt'>Minimum Footprint size</td> <td class=xl804603 width=150 style='width:113pt'>Company</td> </tr> <tr height=100 style='mso-height-source:userset;height:75.6pt'> <td height=100 class=xl704603 width=102 style='height:75.6pt;width:77pt'>SQLite</td> <td class=xl654603 width=238 style='width:179pt'>C programming library; probably still 90% market share in the small devices space (personal assumption)</td> <td class=xl814603 width=104 style='width:78pt'><a href="https://en.wikipedia.org/wiki/Public_domain"><span style='color:#17A6A6; font-size:10.0pt;text-decoration:none;font-family:Roboto;mso-generic-font-family: auto;mso-font-charset:0'>Public domain</span></a></td> <td class=xl654603 width=70 style='width:53pt'>embedded on iOS and Android</td> <td class=xl654603 width=122 style='width:92pt'>Relational</td> <td class=xl654603 width=83 style='width:62pt'>No</td> <td class=xl654603 width=64 style='width:48pt'>No</td> <td class=xl654603 width=72 style='width:54pt'>No</td> <td class=xl654603 width=113 style='width:85pt'>No, but option to use SQLCipher to encrypt SQLite</td> <td class=xl654603 width=118 style='width:89pt'>Flutter plugins (ORMs) for SQLite, but nothing from Hwaci</td> <td class=xl654603 width=113 style='width:85pt'>No, but various early & unofficial extensions are available</td> <td class=xl654603 width=97 style='width:73pt'>< 1 MB</td> <td class=xl824603 width=150 style='width:113pt'><a href="https://sqlite.org/support.html"><span style='color:#17A6A6;text-decoration: none;font-family:Roboto;mso-generic-font-family:auto;mso-font-charset:0'>Hwaci</span></a></td> </tr> <tr height=114 style='mso-height-source:userset;height:85.5pt'> <td height=114 class=xl714603 width=102 style='height:85.5pt;width:77pt'>Couchbase Mobile / Lite</td> <td class=xl664603 width=238 style='width:179pt'>Embedded / portable database with P2P and central synchronization (sync) support; pricing upon request; some restrictions apply for the free version. Secure SSL.</td> <td class=xl934603 width=104 style='width:78pt'>Partly proprietary, partly open-source, Couchbase Lite is BSL 1.1</td> <td class=xl664603 width=70 style='width:53pt'>Android / iOS</td> <td class=xl924603 width=122 style='width:92pt'>JSON Documents / NoSQL db</td> <td class=xl664603 width=83 style='width:62pt'>Yes</td> <td class=xl664603 width=64 style='width:48pt'>Yes</td> <td class=xl664603 width=72 style='width:54pt'>No</td> <td class=xl894603 width=113 style='width:85pt'><a href="https://www.zetetic.net/sqlcipher/"><span style='color:#17A6A6; font-size:10.0pt;text-decoration:none;font-family:Roboto;mso-generic-font-family: auto;mso-font-charset:0'>Database encryption with SQLCipher (256-bit AES)</span></a></td> <td class=xl664603 width=118 style='width:89pt'>Unofficial Flutter plugin for Couchbase Lite Community Edition</td> <td class=xl664603 width=113 style='width:85pt'>No</td> <td class=xl664603 width=97 style='width:73pt'>< 3,5 MB</td> <td class=xl834603 width=150 style='width:113pt'><a href="https://en.wikipedia.org/wiki/Couchbase"><span style='color:#17A6A6; text-decoration:none;font-family:Roboto;mso-generic-font-family:auto; mso-font-charset:0'>Couchbase</span></a></td> </tr> <tr height=51 style='height:38.25pt'> <td height=51 class=xl704603 width=102 style='height:38.25pt;width:77pt'>InterBase ToGo / IBLite</td> <td class=xl674603 width=238 style='width:179pt'>Embeddable SQL database.</td> <td class=xl654603 width=104 style='width:78pt'>Proprietary</td> <td class=xl654603 width=70 style='width:53pt'>Android / iOS</td> <td class=xl654603 width=122 style='width:92pt'>Relational</td> <td class=xl654603 width=83 style='width:62pt'>No</td> <td class=xl654603 width=64 style='width:48pt'>No</td> <td class=xl654603 width=72 style='width:54pt'>No</td> <td class=xl654603 width=113 style='width:85pt'>256 bit AES strength encryption</td> <td class=xl654603 width=118 style='width:89pt'>No</td> <td class=xl654603 width=113 style='width:85pt'>No</td> <td class=xl654603 width=97 style='width:73pt'>< 1 MB</td> <td class=xl824603 width=150 style='width:113pt'><a href="https://www.embarcadero.com/de/company/about-us"><span style='color:#17A6A6;text-decoration:none;font-family:Roboto;mso-generic-font-family: auto;mso-font-charset:0'>Embarcadero</span></a></td> </tr> <tr height=88 style='mso-height-source:userset;height:66.6pt'> <td height=88 class=xl724603 width=102 style='height:66.6pt;border-top:none; width:77pt'>LevelDB</td> <td class=xl684603 width=238 style='border-top:none;border-left:none; width:179pt'>Portable lightweight key-value store, NoSQL, no index support; benchmarks from 2011 have been removed unfortunately</td> <td class=xl914603 width=104 style='border-top:none;border-left:none; width:78pt'><a href="https://en.wikipedia.org/wiki/BSD_licenses"><span style='color:#17A6A6;font-size:10.0pt;text-decoration:none;font-family:Roboto; mso-generic-font-family:auto;mso-font-charset:0'>New BSD</span></a></td> <td class=xl684603 width=70 style='border-top:none;border-left:none; width:53pt'>Android / iOS</td> <td class=xl684603 width=122 style='border-top:none;border-left:none; width:92pt'>Key-value pairs / NoSQL db</td> <td class=xl684603 width=83 style='border-top:none;border-left:none; width:62pt'>No</td> <td class=xl684603 width=64 style='border-top:none;border-left:none; width:48pt'>No</td> <td class=xl684603 width=72 style='border-top:none;border-left:none; width:54pt'>No</td> <td class=xl684603 width=113 style='border-top:none;border-left:none; width:85pt'>No</td> <td class=xl684603 width=118 style='border-top:none;border-left:none; width:89pt'>Unofficial client that is very badly rated</td> <td class=xl684603 width=113 style='border-top:none;border-left:none; width:85pt'>No</td> <td class=xl684603 width=97 style='border-top:none;border-left:none; width:73pt'>< 1 MB</td> <td class=xl844603 width=150 style='width:113pt'><a href="https://github.com/orgs/Level/people"><span style='color:#17A6A6; text-decoration:none;font-family:Roboto;mso-generic-font-family:auto; mso-font-charset:0'>LevelDB Team</span></a></td> </tr> <tr height=68 style='height:51.0pt'> <td height=68 class=xl704603 width=102 style='height:51.0pt;width:77pt'>LiteDB</td> <td class=xl654603 width=238 style='width:179pt'>A .Net embedded NoSQL database</td> <td class=xl814603 width=104 style='width:78pt'><a href="https://en.wikipedia.org/wiki/MIT_License"><span style='color:#17A6A6; font-size:10.0pt;text-decoration:none;font-family:Roboto;mso-generic-font-family: auto;mso-font-charset:0'>MIT license</span></a></td> <td class=xl654603 width=70 style='width:53pt'>Android / iOS (with Xamarin only)</td> <td class=xl654603 width=122 style='width:92pt'>NoSQL document store, fully wirtten in .Net</td> <td class=xl654603 width=83 style='width:62pt'>No</td> <td class=xl654603 width=64 style='width:48pt'>No</td> <td class=xl654603 width=72 style='width:54pt'>No</td> <td class=xl654603 width=113 style='width:85pt'>Salted AES</td> <td class=xl654603 width=118 style='width:89pt'>No</td> <td class=xl654603 width=113 style='width:85pt'>No</td> <td class=xl654603 width=97 style='width:73pt'>< 1 MB</td> <td class=xl734603>LiteDB team</td> </tr> <tr height=101 style='mso-height-source:userset;height:76.35pt'> <td height=101 class=xl714603 width=102 style='height:76.35pt;width:77pt'>Realm DB<span style='mso-spacerun:yes'> </span></td> <td class=xl664603 width=238 style='width:179pt'>Embedded object database<span style='mso-spacerun:yes'> </span></td> <td class=xl894603 width=104 style='width:78pt'>Apache 2.0</td> <td class=xl664603 width=70 style='width:53pt'>Android / iOS</td> <td class=xl904603 width=122 style='width:92pt'><a href="https://en.wikipedia.org/wiki/Object_Database"><span style='color:#17A6A6; text-decoration:none;font-family:Roboto;mso-generic-font-family:auto; mso-font-charset:0'>Object Database</span></a></td> <td class=xl664603 width=83 style='width:62pt'>deprecated</td> <td class=xl664603 width=64 style='width:48pt'>No</td> <td class=xl664603 width=72 style='width:54pt'>deprecated</td> <td class=xl664603 width=113 style='width:85pt'>Yes</td> <td class=xl974603 width=118 style='width:89pt'>Yes</td> <td class=xl664603 width=113 style='width:85pt'>No</td> <td class=xl854603><a href="https://stackoverflow.com/questions/51958150/what-is-the-application-size-impact-of-using-realm-db-in-swift-on-ios"><span style='color:#17A6A6;text-decoration:none;font-family:Roboto;mso-generic-font-family: auto;mso-font-charset:0'>5 MB+</span></a></td> <td class=xl954603 width=150 style='width:113pt'><a href="https://www.mongodb.com/de-de/products/updates/product-support-deprecation">Acquired by MongoDB in 2019, Data Sync deprecated in 2024; DB still available as open source, not maintained</a></td> </tr> <tr height=104 style='mso-height-source:userset;height:78.0pt'> <td height=104 class=xl704603 width=102 style='height:78.0pt;width:77pt'>ObjectBox</td> <td class=xl964603 width=238 style='border-top:none;border-left:none; width:179pt'>NoSQL Edge Vector Database with out-of-the-box Data Sync for Mobile and IoT; fully ACID compliant; benchmarks available as open source.</td> <td class=xl814603 width=104 style='width:78pt'><a href="https://en.wikipedia.org/wiki/Apache_License"><span style='color:#17A6A6; font-size:10.0pt;text-decoration:none;font-family:Roboto;mso-generic-font-family: auto;mso-font-charset:0'>Open Core (plus Apache 2.0 bindings)</span></a></td> <td class=xl654603 width=70 style='width:53pt'>Android / iOS / Linux / Windows / any POSIX</td> <td class=xl654603 width=122 style='width:92pt'>Object-oriented NoSQL edge database for high-performance on edge devices in Mobile and IoT</td> <td class=xl654603 width=83 style='width:62pt'>Yes</td> <td class=xl654603 width=64 style='width:48pt'>WIP</td> <td class=xl654603 width=72 style='width:54pt'>Yes</td> <td class=xl674603 width=113 style='width:85pt'>transport encryption; additional encryption upon request</td> <td class=xl814603 width=118 style='width:89pt'><a href="https://pub.dev/packages/objectbox"><span style='color:#17A6A6; font-size:10.0pt;text-decoration:none;font-family:Roboto;mso-generic-font-family: auto;mso-font-charset:0'>Yes</span></a></td> <td class=xl944603 width=113 style='width:85pt'><a href="https://objectbox.io/the-first-on-device-vector-database-objectbox-4-0/">First local vector database fo on-device Edge AI released May 2024</a></td> <td class=xl654603 width=97 style='width:73pt'>< 1 MB</td> <td class=xl824603 width=150 style='width:113pt'><a href="https://objectbox.io/"><span style='color:#17A6A6;text-decoration:none; font-family:Roboto;mso-generic-font-family:auto;mso-font-charset:0'>ObjectBox</span></a></td> </tr> <tr height=91 style='mso-height-source:userset;height:68.45pt'> <td height=91 class=xl714603 width=102 style='height:68.45pt;width:77pt'>Oracle Database Lite</td> <td class=xl664603 width=238 style='width:179pt'>Portable with P2P and central sync support as well as support for sync with SQLite</td> <td class=xl664603 width=104 style='width:78pt'>Proprietary</td> <td class=xl664603 width=70 style='width:53pt'>Android / iOS</td> <td class=xl664603 width=122 style='width:92pt'>Relational</td> <td class=xl664603 width=83 style='width:62pt'>Yes</td> <td class=xl664603 width=64 style='width:48pt'>Yes</td> <td class=xl664603 width=72 style='width:54pt'>No</td> <td class=xl664603 width=113 style='width:85pt'>128-bit AES Standard encrytion</td> <td class=xl664603 width=118 style='width:89pt'>No</td> <td class=xl664603 width=113 style='width:85pt'>No</td> <td class=xl664603 width=97 style='width:73pt'>< 1 MB</td> <td class=xl834603 width=150 style='width:113pt'><a href="https://en.wikipedia.org/wiki/Oracle_Corporation"><span style='color:#17A6A6;text-decoration:none;font-family:Roboto;mso-generic-font-family: auto;mso-font-charset:0'>Oracle Corporation</span></a></td> </tr> <tr height=94 style='mso-height-source:userset;height:70.7pt'> <td height=94 class=xl704603 width=102 style='height:70.7pt;width:77pt'>SQL Anywhere</td> <td class=xl814603 width=238 style='width:179pt'><a href="https://www.sapstore.com/solutions/99017/SAP-SQL-Anywhere"><span style='color:#17A6A6;font-size:10.0pt;text-decoration:none;font-family:Roboto; mso-generic-font-family:auto;mso-font-charset:0'>Embedded / portable database with central snyc support with a stationary database, pricing now available here</span></a></td> <td class=xl654603 width=104 style='width:78pt'>Proprietary</td> <td class=xl654603 width=70 style='width:53pt'>Android / iOS</td> <td class=xl884603 width=122 style='width:92pt'><a href="https://en.wikipedia.org/wiki/Relational_database"><span style='color:#17A6A6;text-decoration:none;font-family:Roboto;mso-generic-font-family: auto;mso-font-charset:0'>Relational</span></a></td> <td class=xl654603 width=83 style='width:62pt'>Yes, tied to using other SAP tech though (we believe)</td> <td class=xl654603 width=64 style='width:48pt'>No</td> <td class=xl654603 width=72 style='width:54pt'>No</td> <td class=xl654603 width=113 style='width:85pt'>AES-FIPS cipher encryption for full database or selected tables</td> <td class=xl654603 width=118 style='width:89pt'>No</td> <td class=xl654603 width=113 style='width:85pt'>No</td> <td class=xl654603 width=97 style='width:73pt'> </td> <td class=xl824603 width=150 style='width:113pt'><a href="https://en.wikipedia.org/wiki/Sybase"><span style='color:#17A6A6; text-decoration:none;font-family:Roboto;mso-generic-font-family:auto; mso-font-charset:0'>SAP (originally Sybase)</span></a></td> </tr> <tr height=104 style='mso-height-source:userset;height:78.6pt'> <td height=104 class=xl714603 width=102 style='height:78.6pt;width:77pt'>UnQLite</td> <td class=xl664603 width=238 style='width:179pt'>Portable lightweight embedded db; self-contained C library without dependency.</td> <td class=xl664603 width=104 style='width:78pt'>2-Clause BSD</td> <td class=xl664603 width=70 style='width:53pt'>Android / iOS</td> <td class=xl664603 width=122 style='width:92pt'>Key-value pairs / JSON store / NoSQL db</td> <td class=xl664603 width=83 style='width:62pt'>No</td> <td class=xl664603 width=64 style='width:48pt'>No</td> <td class=xl664603 width=72 style='width:54pt'>No</td> <td class=xl664603 width=113 style='width:85pt'>128-bit or 256-bit AES standard encryption</td> <td class=xl664603 width=118 style='width:89pt'>not yet; might be coming though; there was a 0.0.1 released some time ago</td> <td class=xl664603 width=113 style='width:85pt'>No</td> <td class=xl664603 width=97 style='width:73pt'>~ 1.5 MB</td> <td class=xl834603 width=150 style='width:113pt'><a href="http://www.symisc.net/"><span style='color:#17A6A6;text-decoration: none;font-family:Roboto;mso-generic-font-family:auto;mso-font-charset:0'>Symisc systems</span></a></td> </tr> <tr height=86 style='mso-height-source:userset;height:64.7pt'> <td height=86 class=xl704603 width=102 style='height:64.7pt;width:77pt'>extremeDB</td> <td class=xl654603 width=238 style='width:179pt'>Embedded relational database</td> <td class=xl654603 width=104 style='width:78pt'>Proprietary</td> <td class=xl654603 width=70 style='width:53pt'>iOS</td> <td class=xl654603 width=122 style='width:92pt'>In-memory relational DB, hybrid persistence</td> <td class=xl654603 width=83 style='width:62pt'>No</td> <td class=xl654603 width=64 style='width:48pt'>No</td> <td class=xl654603 width=72 style='width:54pt'>No</td> <td class=xl654603 width=113 style='width:85pt'>AES encryption</td> <td class=xl654603 width=118 style='width:89pt'>No</td> <td class=xl654603 width=113 style='width:85pt'>No</td> <td class=xl654603 width=97 style='width:73pt'>< 1 MB</td> <td class=xl744603 width=150 style='width:113pt'>McObject LLC</td> </tr> <tr height=88 style='mso-height-source:userset;height:66.6pt'> <td height=88 class=xl714603 width=102 style='height:66.6pt;width:77pt'>redis DB</td> <td class=xl664603 width=238 style='width:179pt'>High-performance in-memory Key Value store with optional durability</td> <td class=xl664603 width=104 style='width:78pt'>Three clause BSD license, RSAL and Proprietary</td> <td class=xl664603 width=70 style='width:53pt'>No</td> <td class=xl664603 width=122 style='width:92pt'>K/V in-memory store, typically used as cache</td> <td class=xl664603 width=83 style='width:62pt'>No</td> <td class=xl664603 width=64 style='width:48pt'>No</td> <td class=xl664603 width=72 style='width:54pt'>No</td> <td class=xl664603 width=113 style='width:85pt'>TLS/SSL-based encryption can be enabled for data in motion.</td> <td class=xl664603 width=118 style='width:89pt'>Unofficial redis Dart client available</td> <td class=xl664603 width=113 style='width:85pt'>No on-device vector database, but cloud vector support</td> <td class=xl664603 width=97 style='width:73pt'>An empty instance uses ~ 3MB of memory</td> <td class=xl834603 width=150 style='width:113pt'><a href="https://en.wikipedia.org/wiki/Redis_Labs"><span style='color:#17A6A6; text-decoration:none;font-family:Roboto;mso-generic-font-family:auto; mso-font-charset:0'>redislabs (the original author of redis left in 2020)</span></a></td> </tr> <tr height=84 style='mso-height-source:userset;height:63.6pt'> <td height=84 class=xl754603 width=102 style='height:63.6pt;width:77pt'>Azure SQL Edge<font class="font54603"> </font></td> <td class=xl874603 width=238 style='width:179pt'><a href="https://objectbox.io/what-is-an-edge-database-and-why-do-you-need-one/"><span style='color:#17A6A6;font-size:10.0pt;text-decoration:none;font-family:Roboto; mso-generic-font-family:auto;mso-font-charset:0'>Designed as a SQL database for the IoT edge; however, due to the footprint it is no Edge Database</span></a></td> <td class=xl874603 width=104 style='width:78pt'><a href="https://en.wikipedia.org/wiki/Proprietary_software"><span style='color:#17A6A6;font-size:10.0pt;text-decoration:none;font-family:Roboto; mso-generic-font-family:auto;mso-font-charset:0'>Proprietary</span></a></td> <td class=xl764603 width=70 style='width:53pt'>No</td> <td class=xl764603 width=122 style='width:92pt'>Relational DB for IoT</td> <td class=xl764603 width=83 style='width:62pt'>No</td> <td class=xl764603 width=64 style='width:48pt'>No</td> <td class=xl764603 width=72 style='width:54pt'>No</td> <td class=xl764603 width=113 style='width:85pt'>will provide encryption</td> <td class=xl764603 width=118 style='width:89pt'>No</td> <td class=xl764603 width=113 style='width:85pt'>Not on-device</td> <td class=xl764603 width=97 style='width:73pt'>500 MB+</td> <td class=xl864603 width=150 style='width:113pt'><a href="https://en.wikipedia.org/wiki/Microsoft"><span style='color:#17A6A6; text-decoration:none;font-family:Roboto;mso-generic-font-family:auto; mso-font-charset:0'>Microsoft</span></a></td> </tr> <![if supportMisalignedColumns]> <tr height=0 style='display:none'> <td width=102 style='width:77pt'></td> <td width=238 style='width:179pt'></td> <td width=104 style='width:78pt'></td> <td width=70 style='width:53pt'></td> <td width=122 style='width:92pt'></td> <td width=83 style='width:62pt'></td> <td width=64 style='width:48pt'></td> <td width=72 style='width:54pt'></td> <td width=113 style='width:85pt'></td> <td width=118 style='width:89pt'></td> <td width=113 style='width:85pt'></td> <td width=97 style='width:73pt'></td> <td width=150 style='width:113pt'></td> </tr> <![endif]> </table> </div> <!-----------------------------> <!--END OF OUTPUT FROM EXCEL PUBLISH AS WEB PAGE WIZARD--> <!-----------------------------> </body> </html> </div> </div> </div><div class="et_pb_section et_pb_section_3 et_section_regular" > <div class="et_pb_row et_pb_row_2"> <div class="et_pb_column et_pb_column_4_4 et_pb_column_2 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_text et_pb_text_4 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><p><span style="font-weight: 400;">If you are interested in an indication of the diffusion rate of databases, check out the following database popularity ranking: </span><a href="http://db-engines.com/en/ran"><span style="font-weight: 400;">http://db-engines.com/en/ran</span></a><span style="font-weight: 400;">. If you are interested to learn more about SQLite, </span><a href="https://corecursive.com/066-sqlite-with-richard-hipp/"><span style="font-weight: 400;">there is a great Podcast interview with Richard Hipp that is worthwhile listening to</span></a><span style="font-weight: 400;">.</span></p> <p><span style="font-weight: 400;">Is there anything we’ve missed? What do you agree and disagree with? Please share your thoughts with us via </span><a href="https://twitter.com/ObjectBox_io"><span style="font-weight: 400;">Twitter</span></a><span style="font-weight: 400;"> or email us on contact[at]objectbox.io. </span></p> <p><span style="font-weight: 400;">Make sure to check out the </span><a href="https://github.com/objectbox"><span style="font-weight: 400;">ObjectBox Database</span></a><span style="font-weight: 400;"> & try out </span><a href="https://objectbox.io/sync/"><span style="font-weight: 400;">ObjectBox Sync</span></a><span style="font-weight: 400;">. You can get started in minutes and it’s perfect if you are using an object-oriented programming language, as it empowers you to work with your objects within the database. More than 1,000,000 developers already use this Edge </span><a href="https://objectbox.io/embedded-database/"><span style="font-weight: 400;">Database designed specifically for high performance on small, connected, embedded devices</span></a><span style="font-weight: 400;">.</span></p></div> </div> </div> </div> </div><div class="et_pb_section et_pb_section_4 et_section_regular" > <div class="et_pb_row et_pb_row_3"> <div class="et_pb_column et_pb_column_4_4 et_pb_column_3 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_button_module_wrapper et_pb_button_0_wrapper et_pb_button_alignment_center et_pb_module "> <a class="et_pb_button et_pb_button_0 et_hover_enabled et_pb_bg_layout_light" href="https://objectbox.io/offline-first-mobile-database/" target="_blank" data-icon="9">Start Using an Edge DB now</a> </div> </div> </div> </div> </div> </div> </div> <div class="et_post_meta_wrapper"> <section id="comment-wrap"> <h1 id="comments" class="page_title">2 Comments</h1> <ol class="commentlist clearfix"> <li class="comment even thread-even depth-1 et-pb-non-builder-comment" id="li-comment-159"> <article id="comment-159" class="comment-body clearfix"> <div class="comment_avatar"> <img alt='Steve Macdonald' src='https://secure.gravatar.com/avatar/649d6a46220576368deefca03f5b1a5f?s=80&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/649d6a46220576368deefca03f5b1a5f?s=160&d=mm&r=g 2x' class='avatar avatar-80 photo' height='80' width='80' decoding='async'/> </div> <div class="comment_postinfo"> <span class="fn">Steve Macdonald</span> <span class="comment_date"> on October 7, 2017 at 11:18 pm </span> </div> <div class="comment_area"> <div class="comment-content clearfix"> <p>Realm has centralized sync.</p> </div> </div> </article> </li><!-- #comment-## --> <li class="comment odd alt thread-odd thread-alt depth-1 et-pb-non-builder-comment" id="li-comment-307"> <article id="comment-307" class="comment-body clearfix"> <div class="comment_avatar"> <img alt='rraallvv' src='https://secure.gravatar.com/avatar/1d411ee4a8df3f854d9df59c4b8756bf?s=80&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/1d411ee4a8df3f854d9df59c4b8756bf?s=160&d=mm&r=g 2x' class='avatar avatar-80 photo' height='80' width='80' decoding='async'/> </div> <div class="comment_postinfo"> <span class="fn">rraallvv</span> <span class="comment_date"> on May 5, 2018 at 1:05 am </span> </div> <div class="comment_area"> <div class="comment-content clearfix"> <p>LiteDB seems a good alternative to. Here is the official repo <a href="https://github.com/mbdavid/litedb" rel="nofollow ugc">https://github.com/mbdavid/litedb</a></p> </div> </div> </article> </li><!-- #comment-## --> </ol> <div id="trackbacks"> <h3 id="trackbacks-title">Trackbacks/Pingbacks</h3> <ol class="pinglist"> <li id="comment-353"><a href="https://javadude.wordpress.com/2018/07/18/design-an-aodb-for-a-mobile-server-platform/" class="url" rel="ugc external nofollow">Design an AODB for a mobile server platform ? | The JavaDude Weblog</a> - […] App-server ? Easy to answer, it does not exist. Maybe simple http server is possible. Database ? Only a…</li><!-- #comment-## --> </ol> </div> </section> </div> </article> </div> </div> </div> </div> <script nitro-exclude> var heartbeatData = new FormData(); heartbeatData.append('nitroHeartbeat', '1'); fetch(location.href, {method: 'POST', body: heartbeatData, credentials: 'omit'}); </script> <script nitro-exclude> document.cookie = 'nitroCachedPage=' + (!window.NITROPACK_STATE ? '0' : '1') + '; path=/; SameSite=Lax'; </script> <span class="et_pb_scroll_top et-pb-icon"></span> <footer id="main-footer"> <div id="footer-bottom"> <div class="container clearfix"> <div id="footer-info">Ⓒ Copyright 2024 ObjectBox Limited. All rights reserved. | <a href="https://objectbox.io/wordpress/wp-content/uploads/2024/10/2024_10_23_Object-Box-Privacy-Notice.docx.pdf" target="_blank" rel="nofollow">Privacy notice</a> | <a href="https://objectbox.io/wordpress/wp-content/uploads/2024/10/ObjectBox-Terms-Of-UseAC2024.pdf" target="_blank" rel="nofollow">Terms of use & Imprint</a></div> </div> </div> </footer> </div> </div> </div> <script type='text/javascript'>( $ => { /** * Displays toast message from storage, it is used when the user is redirected after login */ if ( window.sessionStorage ) { $( window ).on( 'tcb_after_dom_ready', () => { const message = sessionStorage.getItem( 'tcb_toast_message' ); if ( message ) { tcbToast( sessionStorage.getItem( 'tcb_toast_message' ), false ); sessionStorage.removeItem( 'tcb_toast_message' ); } } ); } /** * Displays toast message * * @param {string} message - message to display * @param {Boolean} error - whether the message is an error or not * @param {Function} callback - callback function to be called after the message is closed */ function tcbToast( message, error, callback ) { /* Also allow "message" objects */ if ( typeof message !== 'string' ) { message = message.message || message.error || message.success; } if ( ! error ) { error = false; } TCB_Front.notificationElement.toggle( message, error ? 'error' : 'success', callback ); } } )( typeof ThriveGlobal === 'undefined' ? jQuery : ThriveGlobal.$j ); </script><style type="text/css" id="tve_notification_styles"></style> <div class="tvd-toast tve-fe-message" style="display: none"> <div class="tve-toast-message tve-success-message"> <div class="tve-toast-icon-container"> <span class="tve_tick thrv-svg-icon"></span> </div> <div class="tve-toast-message-container"></div> </div> </div> <script type='text/javascript'> (function () { var c = document.body.className; c = c.replace(/woocommerce-no-js/, 'woocommerce-js'); document.body.className = c; })(); </script> <!-- Start of HubSpot Embed Code --> <script type="text/javascript" id="hs-script-loader" async defer src="//js.hs-scripts.com/3772993.js"></script> <!-- End of HubSpot Embed Code --><link rel='stylesheet' id='wc-blocks-style-css' href='https://objectbox.io/wordpress/wp-content/plugins/woocommerce/assets/client/blocks/wc-blocks.css?ver=wc-9.3.3' type='text/css' media='all' /> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-content/plugins/divi-modules-table-maker/extensions/scripts/public-module-script-min.js?ver=3.1.2" id="dvmd-tm-public-module-script-js"></script> <script type="text/javascript" id="leadin-script-loader-js-js-extra"> /* <![CDATA[ */ var leadin_wordpress = {"userRole":"visitor","pageType":"post","leadinPluginVersion":"11.1.66"}; /* ]]> */ </script> <script type="text/javascript" src="https://js.hs-scripts.com/3772993.js?integration=WordPress&ver=11.1.66" id="leadin-script-loader-js-js"></script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-content/plugins/addons-for-divi/assets/libs/magnific-popup/magnific-popup.js?ver=4.0.5" id="divi-torque-lite-magnific-popup-js"></script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-content/plugins/addons-for-divi/assets/libs/slick/slick.min.js?ver=4.0.5" id="divi-torque-lite-slick-js"></script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-content/plugins/addons-for-divi/assets/libs/counter-up/counter-up.min.js?ver=4.0.5" id="divi-torque-lite-counter-up-js"></script> <script type="text/javascript" id="divi-torque-lite-frontend-js-extra"> /* <![CDATA[ */ var diviTorqueLiteFrontend = {"ajaxurl":"https:\/\/objectbox.io\/wordpress\/wp-admin\/admin-ajax.php"}; /* ]]> */ </script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-content/plugins/addons-for-divi/assets/js/frontend.js?ver=4.0.5" id="divi-torque-lite-frontend-js"></script> <script type="text/javascript" id="divi-custom-script-js-extra"> /* <![CDATA[ */ var DIVI = {"item_count":"%d Item","items_count":"%d Items"}; var et_builder_utils_params = {"condition":{"diviTheme":true,"extraTheme":false},"scrollLocations":["app","top"],"builderScrollLocations":{"desktop":"app","tablet":"app","phone":"app"},"onloadScrollLocation":"app","builderType":"fe"}; var et_frontend_scripts = {"builderCssContainerPrefix":"#et-boc","builderCssLayoutPrefix":"#et-boc .et-l"}; var et_pb_custom = {"ajaxurl":"https:\/\/objectbox.io\/wordpress\/wp-admin\/admin-ajax.php","images_uri":"https:\/\/objectbox.io\/wordpress\/wp-content\/themes\/Divi\/images","builder_images_uri":"https:\/\/objectbox.io\/wordpress\/wp-content\/themes\/Divi\/includes\/builder\/images","et_frontend_nonce":"5de0a110a2","subscription_failed":"Please, check the fields below to make sure you entered the correct information.","et_ab_log_nonce":"4645a079c6","fill_message":"Please, fill in the following fields:","contact_error_message":"Please, fix the following errors:","invalid":"Invalid email","captcha":"Captcha","prev":"Prev","previous":"Previous","next":"Next","wrong_captcha":"You entered the wrong number in captcha.","wrong_checkbox":"Checkbox","ignore_waypoints":"no","is_divi_theme_used":"1","widget_search_selector":".widget_search","ab_tests":[],"is_ab_testing_active":"","page_id":"31173","unique_test_id":"","ab_bounce_rate":"5","is_cache_plugin_active":"no","is_shortcode_tracking":"","tinymce_uri":"https:\/\/objectbox.io\/wordpress\/wp-content\/themes\/Divi\/includes\/builder\/frontend-builder\/assets\/vendors","accent_color":"#17a6a6","waypoints_options":[]}; var et_pb_box_shadow_elements = []; /* ]]> */ </script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-content/themes/Divi/js/scripts.min.js?ver=4.22.0" id="divi-custom-script-js"></script> <script type="text/javascript" id="tve-dash-frontend-js-extra"> /* <![CDATA[ */ var tve_dash_front = {"ajaxurl":"https:\/\/objectbox.io\/wordpress\/wp-admin\/admin-ajax.php","force_ajax_send":"1","is_crawler":"","recaptcha":[],"turnstile":[],"post_id":"31173"}; /* ]]> */ </script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-content/plugins/thrive-leads/thrive-dashboard/js/dist/frontend.min.js?ver=10.3" id="tve-dash-frontend-js"></script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-content/themes/Divi/includes/builder/feature/dynamic-assets/assets/js/jquery.fitvids.js?ver=4.22.0" id="fitvids-js"></script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-includes/js/comment-reply.min.js?ver=6.5.5" id="comment-reply-js" async="async" data-wp-strategy="async"></script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-content/themes/Divi/includes/builder/feature/dynamic-assets/assets/js/jquery.mobile.js?ver=4.22.0" id="jquery-mobile-js"></script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-content/themes/Divi/includes/builder/feature/dynamic-assets/assets/js/magnific-popup.js?ver=4.22.0" id="magnific-popup-js"></script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-content/themes/Divi/includes/builder/feature/dynamic-assets/assets/js/easypiechart.js?ver=4.22.0" id="easypiechart-js"></script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-content/themes/Divi/includes/builder/feature/dynamic-assets/assets/js/salvattore.js?ver=4.22.0" id="salvattore-js"></script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-content/plugins/divi-modules-table-maker/extensions/divi-4/scripts/frontend-bundle.min.js?ver=3.1.2" id="divi-modules-table-maker-frontend-bundle-js"></script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-content/plugins/woocommerce/assets/js/sourcebuster/sourcebuster.min.js?ver=9.3.3" id="sourcebuster-js-js"></script> <script type="text/javascript" id="wc-order-attribution-js-extra"> /* <![CDATA[ */ var wc_order_attribution = {"params":{"lifetime":1.0000000000000000818030539140313095458623138256371021270751953125e-5,"session":30,"base64":false,"ajaxurl":"https:\/\/objectbox.io\/wordpress\/wp-admin\/admin-ajax.php","prefix":"wc_order_attribution_","allowTracking":true},"fields":{"source_type":"current.typ","referrer":"current_add.rf","utm_campaign":"current.cmp","utm_source":"current.src","utm_medium":"current.mdm","utm_content":"current.cnt","utm_id":"current.id","utm_term":"current.trm","utm_source_platform":"current.plt","utm_creative_format":"current.fmt","utm_marketing_tactic":"current.tct","session_entry":"current_add.ep","session_start_time":"current_add.fd","session_pages":"session.pgs","session_count":"udata.vst","user_agent":"udata.uag"}}; /* ]]> */ </script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-content/plugins/woocommerce/assets/js/frontend/order-attribution.min.js?ver=9.3.3" id="wc-order-attribution-js"></script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-content/themes/Divi/core/admin/js/common.js?ver=4.22.0" id="et-core-common-js"></script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-content/plugins/divi-module-code-snippet/features/DBCSCopyToClipboardFeature/script.js?ver=1.4.4" id="dbcs-copy-to-clipboard-js"></script> <script type="text/javascript" id="et-builder-modules-script-motion-js-extra"> /* <![CDATA[ */ var et_pb_motion_elements = {"desktop":[],"tablet":[],"phone":[]}; /* ]]> */ </script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-content/themes/Divi/includes/builder/feature/dynamic-assets/assets/js/motion-effects.js?ver=4.22.0" id="et-builder-modules-script-motion-js"></script> <script type="text/javascript" id="et-builder-modules-script-sticky-js-extra"> /* <![CDATA[ */ var et_pb_sticky_elements = {"et_pb_section_0_tb_header":{"id":"et_pb_section_0_tb_header","selector":".et_pb_section_0_tb_header","position":{"desktop":"top","tablet":"none","phone":"none"},"topOffset":"0px","bottomOffset":"0px","topLimit":"none","bottomLimit":"none","offsetSurrounding":"on","transition":"on","styles":{"module_alignment":{"desktop":"","tablet":"","phone":""},"positioning":"relative"},"stickyStyles":{"position_origin_r":"top_left","horizontal_offset":"","vertical_offset":""}}}; /* ]]> */ </script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-content/themes/Divi/includes/builder/feature/dynamic-assets/assets/js/sticky-elements.js?ver=4.22.0" id="et-builder-modules-script-sticky-js"></script> <script type="text/javascript">var tcb_current_post_lists=JSON.parse('[]'); var tcb_post_lists=tcb_post_lists?[...tcb_post_lists,...tcb_current_post_lists]:tcb_current_post_lists;</script><script type="text/javascript">/*<![CDATA[*/if ( !window.TL_Const ) {var TL_Const={"security":"f4512e0ff7","ajax_url":"https:\/\/objectbox.io\/wordpress\/wp-admin\/admin-ajax.php","forms":[],"action_conversion":"tve_leads_ajax_conversion","action_impression":"tve_leads_ajax_impression","ajax_load":0,"main_group_id":30848,"display_options":{"allowed_post_types":[],"flag_url_match":false},"custom_post_data":[],"current_screen":{"screen_type":4,"screen_id":31173},"ignored_fields":["email","_captcha_size","_captcha_theme","_captcha_type","_submit_option","_use_captcha","g-recaptcha-response","__tcb_lg_fc","__tcb_lg_msg","_state","_form_type","_error_message_option","_back_url","_submit_option","url","_asset_group","_asset_option","mailchimp_optin","tcb_token","tve_labels","tve_mapping","_api_custom_fields","_sendParams","_autofill"]};} else { window.TL_Front && TL_Front.extendConst && TL_Front.extendConst({"security":"f4512e0ff7","ajax_url":"https:\/\/objectbox.io\/wordpress\/wp-admin\/admin-ajax.php","forms":[],"action_conversion":"tve_leads_ajax_conversion","action_impression":"tve_leads_ajax_impression","ajax_load":0,"main_group_id":30848,"display_options":{"allowed_post_types":[],"flag_url_match":false},"custom_post_data":[],"current_screen":{"screen_type":4,"screen_id":31173},"ignored_fields":["email","_captcha_size","_captcha_theme","_captcha_type","_submit_option","_use_captcha","g-recaptcha-response","__tcb_lg_fc","__tcb_lg_msg","_state","_form_type","_error_message_option","_back_url","_submit_option","url","_asset_group","_asset_option","mailchimp_optin","tcb_token","tve_labels","tve_mapping","_api_custom_fields","_sendParams","_autofill"]})} /*]]> */</script><style id="et-builder-module-design-tb-256727-31173-cached-inline-styles">.et_pb_section_0_tb_header{border-bottom-width:1px;margin-bottom:-11px;z-index:10;box-shadow:0px 2px 18px 0px rgba(0,0,0,0.1)}.et_pb_section_0_tb_header.et_pb_section{padding-top:0px;padding-bottom:0px;background-color:#1B1815!important}.et_pb_sticky.et_pb_section_0_tb_header{box-shadow:0px 2px 18px 0px rgba(0,0,0,0.1);box-shadow:0px 5px 80px rgba(0,0,0,0.1)!important}.et_pb_row_0_tb_header:before{@media only screen and (min-width:981px){.et_pb_column_0{width:15%!important}.et_pb_column_1{width:15%!important}.et_pb_column_2{width:40%!important}.et_pb_column_3{width:15%!important}.et_pb_column_4{width:15%!important}}}.et_pb_row_0_tb_header{display:flex;align-items:center;flex-wrap:wrap}.et_pb_code_0_tb_header,.et_pb_code_1_tb_header{padding-top:0px;padding-bottom:0px;margin-top:0px!important;margin-bottom:0px!important}.et_pb_menu_0_tb_header.et_pb_menu ul li a{font-weight:500;font-size:15px;color:#ffffff!important}.et_pb_menu_0_tb_header.et_pb_menu{background-color:rgba(0,0,0,0)}.et_pb_menu_0_tb_header .et_pb_menu__logo-wrap .et_pb_menu__logo img{border-top-color:#1B1815;width:auto}.et_pb_menu_0_tb_header{padding-top:10px;padding-right:0px;margin-right:840px!important;margin-bottom:0px!important}.et_pb_menu_0_tb_header.et_pb_menu .et-menu-nav li ul.sub-menu{border-width:2px;border-radius:5px;left:auto!important;padding:0;right:0;width:200px}.et_pb_menu_0_tb_header.et_pb_menu .et-menu-nav li ul.sub-menu a{padding:12px 20px}.et_pb_menu_0_tb_header.et_pb_menu .et_pb_menu__logo{margin-bottom:10px}.et_pb_menu_0_tb_header.et_pb_menu ul li.current-menu-item a{color:#ffffff!important}.et_pb_menu_0_tb_header.et_pb_menu .nav li ul{background-color:#393939!important;border-color:#ffffff}.et_pb_menu_0_tb_header.et_pb_menu .et_mobile_menu{border-color:#ffffff}.et_pb_menu_0_tb_header.et_pb_menu .nav li ul.sub-menu a,.et_pb_menu_0_tb_header.et_pb_menu .et_mobile_menu a{color:#F7F7F7!important}.et_pb_menu_0_tb_header.et_pb_menu .nav li ul.sub-menu li.current-menu-item a{color:#17A6A6!important}.et_pb_menu_0_tb_header.et_pb_menu .et_mobile_menu,.et_pb_menu_0_tb_header.et_pb_menu .et_mobile_menu ul{background-color:#383838!important}.et_pb_menu_0_tb_header .et_pb_menu_inner_container>.et_pb_menu__logo-wrap,.et_pb_menu_0_tb_header .et_pb_menu__logo-slot{width:auto;max-width:100%}.et_pb_menu_0_tb_header .et_pb_menu_inner_container>.et_pb_menu__logo-wrap .et_pb_menu__logo img,.et_pb_menu_0_tb_header .et_pb_menu__logo-slot .et_pb_menu__logo-wrap img{height:35px;max-height:none}.et_pb_menu_0_tb_header .mobile_nav .mobile_menu_bar:before{color:#ffffff}.et_pb_menu_0_tb_header .et_pb_menu__icon.et_pb_menu__search-button,.et_pb_menu_0_tb_header .et_pb_menu__icon.et_pb_menu__close-search-button,.et_pb_menu_0_tb_header .et_pb_menu__icon.et_pb_menu__cart-button{color:#17a6a6}.et_pb_button_0_tb_header_wrapper .et_pb_button_0_tb_header,.et_pb_button_0_tb_header_wrapper .et_pb_button_0_tb_header:hover{padding-top:9px!important;padding-right:10px!important;padding-bottom:9px!important;padding-left:29px!important}.et_pb_button_0_tb_header_wrapper{margin-top:4px!important;margin-right:7px!important;margin-bottom:0px!important}body #page-container .et_pb_section .et_pb_button_0_tb_header{color:#BCBCBC!important;border-width:0px!important;border-color:RGBA(255,255,255,0);border-radius:8px;letter-spacing:0px;font-size:14px;background-color:RGBA(255,255,255,0)}body #page-container .et_pb_section .et_pb_button_0_tb_header:hover{color:#ffffff!important;border-color:#17A6A6!important;border-width:1px!important;background-image:initial;background-color:RGBA(255,255,255,0)}body #page-container .et_pb_section .et_pb_button_0_tb_header:after{display:none}body #page-container .et_pb_section .et_pb_button_0_tb_header:before{content:attr(data-icon);font-family:FontAwesome!important;font-weight:400!important;color:#F7F7F7;line-height:inherit;font-size:inherit!important;opacity:1;margin-left:-1.3em;right:auto;display:inline-block;font-family:FontAwesome!important;font-weight:400!important}body #page-container .et_pb_section .et_pb_button_0_tb_header:hover:before{margin-left:.3em;right:auto;margin-left:-1.3em}.et_pb_button_0_tb_header,.et_pb_button_1_tb_header{transition:color 300ms ease 0ms,background-color 300ms ease 0ms,border 300ms ease 0ms}.et_pb_button_0_tb_header,.et_pb_button_0_tb_header:after,.et_pb_button_1_tb_header,.et_pb_button_1_tb_header:after{transition:all 300ms ease 0ms}.et_pb_button_1_tb_header_wrapper .et_pb_button_1_tb_header,.et_pb_button_1_tb_header_wrapper .et_pb_button_1_tb_header:hover{padding-top:7px!important;padding-right:21px!important;padding-bottom:7px!important;padding-left:21px!important}.et_pb_button_1_tb_header_wrapper{margin-top:5px!important;margin-bottom:0px!important}body #page-container .et_pb_section .et_pb_button_1_tb_header{color:#F7F7F7!important;border-width:1px!important;border-color:#17A6A6;border-radius:8px;letter-spacing:0px;font-size:15px;background-image:linear-gradient(195deg,#17a6a6 24%,#006e70 100%);background-color:RGBA(255,255,255,0)}body #page-container .et_pb_section .et_pb_button_1_tb_header:hover{color:#ffffff!important;border-color:#23ffec!important;background-image:linear-gradient(195deg,#1cdddd 0%,#129694 100%);background-color:#ffffff}body #page-container .et_pb_section .et_pb_button_1_tb_header:before,body #page-container .et_pb_section .et_pb_button_1_tb_header:after{display:none!important}.et_pb_row_0_tb_header.et_pb_row{padding-top:0px!important;padding-bottom:0px!important;margin-left:auto!important;margin-right:auto!important;padding-top:0px;padding-bottom:0px}.et_pb_menu_0_tb_header.et_pb_module{margin-left:auto!important;margin-right:auto!important}@media only screen and (min-width:981px){.et_pb_row_0_tb_header,body #page-container .et-db #et-boc .et-l .et_pb_row_0_tb_header.et_pb_row,body.et_pb_pagebuilder_layout.single #page-container #et-boc .et-l .et_pb_row_0_tb_header.et_pb_row,body.et_pb_pagebuilder_layout.single.et_full_width_page #page-container #et-boc .et-l .et_pb_row_0_tb_header.et_pb_row{width:95%}.et_pb_column_1_tb_header{display:flex;justify-content:flex-end}}@media only screen and (max-width:980px){.et_pb_section_0_tb_header{border-bottom-width:1px}.et_pb_row_0_tb_header,body #page-container .et-db #et-boc .et-l .et_pb_row_0_tb_header.et_pb_row,body.et_pb_pagebuilder_layout.single #page-container #et-boc .et-l .et_pb_row_0_tb_header.et_pb_row,body.et_pb_pagebuilder_layout.single.et_full_width_page #page-container #et-boc .et-l .et_pb_row_0_tb_header.et_pb_row,.et_pb_button_0_tb_header,.et_pb_button_1_tb_header{width:100%}.et_pb_column_0_tb_header{order:2;margin-bottom:0}.et_pb_menu_0_tb_header .et_pb_menu__logo-wrap .et_pb_menu__logo img{border-top-color:#1B1815}.et_pb_menu_0_tb_header{padding-top:10px;padding-right:0px;padding-bottom:0px;width:80%}.et_pb_column_1_tb_header{order:1}.et_pb_button_0_tb_header_wrapper{margin-right:0px!important}body #page-container .et_pb_section .et_pb_button_0_tb_header,body #page-container .et_pb_section .et_pb_button_1_tb_header{border-radius:0px}body #page-container .et_pb_section .et_pb_button_0_tb_header:before{line-height:inherit;font-size:inherit!important;margin-left:-1.3em;right:auto;display:inline-block;opacity:1;content:attr(data-icon);font-family:FontAwesome!important;font-weight:400!important}body #page-container .et_pb_section .et_pb_button_0_tb_header:after{display:none}body #page-container .et_pb_section .et_pb_button_0_tb_header:hover:before{margin-left:.3em;right:auto;margin-left:-1.3em}}@media only screen and (min-width:768px) and (max-width:980px){.et_pb_button_0_tb_header,.et_pb_button_1_tb_header{display:none!important}}@media only screen and (max-width:767px){.et_pb_section_0_tb_header{border-bottom-width:1px}.et_pb_column_0_tb_header{order:2;margin-bottom:0}.et_pb_menu_0_tb_header .et_pb_menu__logo-wrap .et_pb_menu__logo img{border-top-color:#1B1815}.et_pb_menu_0_tb_header{width:90%}.et_pb_column_1_tb_header{order:1}body #page-container .et_pb_section .et_pb_button_0_tb_header:before{line-height:inherit;font-size:inherit!important;margin-left:-1.3em;right:auto;display:inline-block;opacity:1;content:attr(data-icon);font-family:FontAwesome!important;font-weight:400!important}body #page-container .et_pb_section .et_pb_button_0_tb_header:after{display:none}body #page-container .et_pb_section .et_pb_button_0_tb_header:hover:before{margin-left:.3em;right:auto;margin-left:-1.3em}.et_pb_button_0_tb_header,.et_pb_button_1_tb_header{width:100%;display:none!important}}.et_pb_section_0.et_pb_section{background-color:#08aaaa!important}.et_pb_fullwidth_header.et_pb_fullwidth_header_0{background-color:rgba(255,255,255,0)}.et_pb_fullwidth_header_0{margin-bottom:16px}.et_pb_section_1.et_pb_section{padding-top:4px;padding-right:0px;padding-bottom:30px;padding-left:0px}.et_pb_row_0.et_pb_row{padding-top:5px!important;padding-bottom:10px!important;padding-top:5px;padding-bottom:10px}.et_pb_row_0:before,.et_pb_row_1:before,.et_pb_row_2:before,.et_pb_row_3:before{@media only screen and (min-width:981px){.et_pb_column_0{width:15%!important}.et_pb_column_1{width:15%!important}.et_pb_column_2{width:40%!important}.et_pb_column_3{width:15%!important}.et_pb_column_4{width:15%!important}}}.et_pb_text_0{min-height:235.7px}.et_pb_image_0{max-width:75%;text-align:center}.et_pb_row_1.et_pb_row{margin-bottom:0px!important}.et_pb_text_1{padding-top:0px!important}.et_pb_fullwidth_code_0{min-height:2282px;margin-bottom:-20%}.et_pb_section_3.et_pb_section{padding-top:5px;padding-bottom:3px}.et_pb_section_4.et_pb_section{padding-top:0px}.et_pb_button_0_wrapper .et_pb_button_0,.et_pb_button_0_wrapper .et_pb_button_0:hover{padding-top:14px!important;padding-right:24px!important;padding-bottom:14px!important;padding-left:24px!important}body #page-container .et_pb_section .et_pb_button_0{color:#ffffff!important;border-width:2px!important;border-radius:3px;letter-spacing:0px;font-size:23px;font-weight:300!important;background-color:#e61955}body #page-container .et_pb_section .et_pb_button_0:hover{color:#ffffff!important;background-image:initial;background-color:#e61955}body #page-container .et_pb_section .et_pb_button_0:hover:after{margin-left:.3em;left:auto;margin-left:.3em;opacity:1}body #page-container .et_pb_section .et_pb_button_0:after{line-height:inherit;font-size:inherit!important;margin-left:-1em;left:auto;font-family:ETmodules!important;font-weight:400!important}.et_pb_button_0{transition:color 300ms ease 0ms,background-color 300ms ease 0ms}.et_pb_button_0,.et_pb_button_0:after{transition:all 300ms ease 0ms}.ba_logo_grid_child_0 .dtq-logo-grid__item,.ba_logo_grid_child_1 .dtq-logo-grid__item,.ba_logo_grid_child_2 .dtq-logo-grid__item,.ba_logo_grid_child_3 .dtq-logo-grid__item,.ba_logo_grid_child_4 .dtq-logo-grid__item,.ba_logo_grid_child_5 .dtq-logo-grid__item,.ba_logo_grid_child_6 .dtq-logo-grid__item,.ba_logo_grid_child_7 .dtq-logo-grid__item,.ba_logo_grid_child_8 .dtq-logo-grid__item{background-color:#e2e5ed!important;padding-top:50px!important;padding-right:50px!important;padding-bottom:50px!important;padding-left:50px!important}@media only screen and (max-width:980px){.et_pb_image_0 .et_pb_image_wrap img{width:auto}body #page-container .et_pb_section .et_pb_button_0:after{line-height:inherit;font-size:inherit!important;margin-left:-1em;left:auto;display:inline-block;opacity:0;content:attr(data-icon);font-family:ETmodules!important;font-weight:400!important}body #page-container .et_pb_section .et_pb_button_0:before{display:none}body #page-container .et_pb_section .et_pb_button_0:hover:after{margin-left:.3em;left:auto;margin-left:.3em;opacity:1}}@media only screen and (max-width:767px){.et_pb_image_0 .et_pb_image_wrap img{width:auto}body #page-container .et_pb_section .et_pb_button_0:after{line-height:inherit;font-size:inherit!important;margin-left:-1em;left:auto;display:inline-block;opacity:0;content:attr(data-icon);font-family:ETmodules!important;font-weight:400!important}body #page-container .et_pb_section .et_pb_button_0:before{display:none}body #page-container .et_pb_section .et_pb_button_0:hover:after{margin-left:.3em;left:auto;margin-left:.3em;opacity:1}}</style> <!-- Cookie Notice plugin v2.4.18 by Hu-manity.co https://hu-manity.co/ --> <div id="cookie-notice" role="dialog" class="cookie-notice-hidden cookie-revoke-hidden cn-position-top" aria-label="Cookie Notice" style="background-color: rgba(50,50,58,1);"><div class="cookie-notice-container" style="color: #fff"><span id="cn-notice-text" class="cn-text-container">We use cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are happy with it.</span><span id="cn-notice-buttons" class="cn-buttons-container"><a href="#" id="cn-accept-cookie" data-cookie-set="accept" class="cn-set-cookie cn-button cn-button-custom button" aria-label="Ok">Ok</a></span><span id="cn-close-notice" data-cookie-set="accept" class="cn-close-icon" title="No"></span></div> </div> <!-- / Cookie Notice plugin --> <span class="et_pb_scroll_top et-pb-icon"></span> </body> </html>