TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Show HN: Kvass, a personal key-value store

227 点作者 maxmunzel将近 3 年前

24 条评论

losfair将近 3 年前
Nice project!<p>I&#x27;m wondering why you choose to implement your own cryptography routines instead of using something standard like TLS. Apparently your `DecryptData` and `Encrypt` methods are vulnerable to replay attacks due to a lack of (EC)DH-style key exchange.
评论 #32212771 未加载
jamesbfb将近 3 年前
You stole my idea! I love it. As a dev who spends a big chunk of their day in the shell, this is the kind of tool that I was destined to create myself, but never did thanks to lack of time, laziness, life, etc.
tkindy将近 3 年前
I’m wondering what sorts of use-cases people would use a personal key-value store for. Maybe it’s just a useful foundation for building other tools on top of, like a password manager.
评论 #32212701 未加载
评论 #32219232 未加载
评论 #32214509 未加载
评论 #32219999 未加载
评论 #32219050 未加载
评论 #32212696 未加载
评论 #32212607 未加载
dheera将近 3 年前
In case anyone is wondering about the name, it&#x27;s a Slavic fermented bread drink that&#x27;s much less alcoholic than beer (and commercially canned versions are near zero alcohol). It&#x27;s one of my favorite chilled summer drinks, and you should be able to find it in Slavic stores in the US as well.
评论 #32216415 未加载
Sujeto将近 3 年前
What does it do better than Skate? Or what additional things does it do, url and qr codes?
评论 #32212812 未加载
prussian将近 3 年前
Cool. Curious why you chose sqlite instead of something like badger [<a href="https:&#x2F;&#x2F;github.com&#x2F;dgraph-io&#x2F;badger" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;dgraph-io&#x2F;badger</a>] given you expose it as a key value database, which badger is.
评论 #32214534 未加载
greatNespresso将近 3 年前
Cool project! Congrats on launching ! What is the benefit compared to reddit or CF workers KV?
评论 #32212833 未加载
mordae将近 3 年前
I like the idea. What surprised me was the custom network protocol. I expected it using ssh to work with the remote instance.
prezjordan将近 3 年前
The built-in server and remote support is pretty nice! API seems solid, and I dig the QR codes.
评论 #32212891 未加载
sigmonsays将近 3 年前
i just have a directory in git and store everything in files<p>can anyone help explain what i&#x27;d use this for?
评论 #32288115 未加载
vlan121将近 3 年前
What is the benefit compared to the private use of Redis? Redis is under BSD licence and continues to be very actively maintained and used.
评论 #32212875 未加载
评论 #32212867 未加载
uwagar将近 3 年前
uh oh leave that drink alone mate.
VMG将近 3 年前
now all that is missing is a FUSE driver
评论 #32212706 未加载
mattmerc将近 3 年前
I don&#x27;t know much about the other solutions that people are mentioning in the comments, but I have to say... this looks elegant! Great job!
mbreese将近 3 年前
I have so many questions about this. Much of the architecture seems off to me. I like the concept, but it doesn&#x27;t seem as secure as it could be.<p>For the README, I&#x27;d hope to find a bit more information about the way data is stored and transmitted. For example, this seems to just be a SQLite database with values in fields? Is there a separate encryption key for the database itself? Otherwise anyone with access to the file would be able to see all data stored?<p>The encryption key is only used to encrypt data in transit, but not at rest? And then you&#x27;re encrypting the full JSON blob instead of only the values? This seems risky to me.<p>What is the purpose of the ProcessID? It is randomly generated and stored in the database (thus used by all clients too). So, I&#x27;m not sure what this is for? I see it&#x27;s used to resolve conflicts, but these should probably be given out by the server?<p>Do the clients cache data locally? It looks like you&#x27;re basically syncing from the server for every request. You&#x27;re already making a round trip to the server for a request anyway, so why not keep state only on the server? I can understand an offline-only mode, but this would require a significantly more robust sync mechanism. If this was the goal, I&#x27;d love to see this discussed more in the README too.<p>Finally, I don&#x27;t understand why you&#x27;re using plain HTTP (no TLS) for communication b&#x2F;w client and server. I didn&#x27;t see any authn&#x2F;authz in the requests. You&#x27;re also unmarshalling random data from the request w&#x2F;o confirming that it is valid first. This seems risky to me and could potentially crash the server if I were to send it random data.<p>This would have been a great use-case for a simple (non-HTTP&#x2F;JSON) TCP server:<p><pre><code> &gt;&gt;&gt; AUTHTOKEN xxx &gt;&gt;&gt; SET $KEY $LEN $SHA1 &gt;&gt;&gt; &lt;bytes&gt; &lt;&lt;&lt; OK &gt;&gt;&gt; AUTHTOKEN xxx &gt;&gt;&gt; GET $KEY &lt;&lt;&lt; $LEN $SHA1 &lt;&lt;&lt; &lt;bytes&gt; </code></pre> Custom protocols have their own security issues, but it can also be easier to see where there are potential issues (like unmarshalling unvalidated blobs). If you wrap something like the above in TLS-PSK, you&#x27;re set. If you want to use encryption for a session (after you authenticate), that&#x27;s possible too, but you&#x27;re at risk of effectively re-creating TLS.
评论 #32217182 未加载
评论 #32214128 未加载
评论 #32213964 未加载
mike_hock将近 3 年前
Can you also drink it?
mahebub将近 3 年前
Hack Mama
markstos将近 3 年前
For personal use, I’ve had good luck storing things in files. Then when I need those those things, I read the files.
评论 #32212843 未加载
评论 #32213003 未加载
评论 #32213037 未加载
评论 #32212796 未加载
评论 #32213796 未加载
评论 #32213861 未加载
vander_elst将近 3 年前
What&#x27;s the use case for this (besides being a nice learning project)?<p>I didn&#x27;t see this on the readme.
评论 #32214143 未加载
raydiatian将近 3 年前
I hope this feeling is me catching onto the joke in the name rather than being a first responder
评论 #32212490 未加载
评论 #32214148 未加载
mkoryak将近 3 年前
Somewhat unrelated: Can one buy kvass starter in the United States, and if so, what is it called?<p>I&#x27;m not interested in bottled kvass, it never tastes like the real thing and you don&#x27;t get to watch kvass explosions in the bottle as it is being made
评论 #32214153 未加载
评论 #32214116 未加载
评论 #32213990 未加载
deltasepsilon将近 3 年前
how about:<p><pre><code> echo &quot;value&quot; &gt; ${home}&#x2F;.db&#x2F;key cat ${home}&#x2F;.db&#x2F;key &gt; value scp -r ...</code></pre>
评论 #32217634 未加载
d1l将近 3 年前
Wait, this is just a toy project.
评论 #32212849 未加载
izhak将近 3 年前
Not trolling or trying to downplay anybody here, but honestly - how “kvass” (readed as “k-v-ass” given it is a “key-value” storage) is a good name?..
评论 #32212997 未加载
评论 #32213049 未加载
评论 #32213227 未加载