<story><title>Dflat: SQLite FlatBuffers</title><url>https://github.com/liuliu/dflat</url></story><parent_chain></parent_chain><comment><author>chrisballinger</author><text>Very interesting concept, but I&amp;#x27;d recommend people check out GRDB[1] if you&amp;#x27;re in search of a mature persistence layer for your iOS apps. It&amp;#x27;s a modern SQLite wrapper with a lot of conveniences for application development like value types, Codable mapping, Combine observables, etc.&lt;p&gt;I&amp;#x27;ve deployed it in production on a few apps so far, and it has been a real joy to use.&lt;p&gt;1. &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;groue&amp;#x2F;GRDB.swift&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;groue&amp;#x2F;GRDB.swift&lt;/a&gt;</text></comment>
<story><title>Dflat: SQLite FlatBuffers</title><url>https://github.com/liuliu/dflat</url></story><parent_chain></parent_chain><comment><author>tirrex</author><text>&amp;gt; Row id&lt;p&gt;&amp;gt; We can uniquely identify an object, even if it is deleted later, without worrying a new object could occupy the same rowid&lt;p&gt;I don’t know anything about mobile and not sure if it applies here but if you call vacuum on sqlite, it rewrites row ids. Is there a way to prevent that? If you have a column “PRIMARY KEY INTEGER”, it is your row id and it won’t change on vacuum, otherwise if you rely on automatic row id, you may have a surprise later.</text></comment>