from Hacker News

Chiselstore: an embeddable, distributed SQLite for Rust

by patrickdevivo on 12/15/21, 11:14 PM with 21 comments

  • by malkia on 12/16/21, 12:23 AM

    I've looked at the https://github.com/chiselstrike/chiselstore/blob/main/proto/... - and calling the service "RPC" is not great if this is going to be bundled with other gRPC services - why not call it "chiselStore" or something more concrete?

    on a 2nd note, each method should have it's own Request Response, and ideally they should be suffixed same way. Returning same proto for multiple methods might break future compatibility - e.g. what if AppendEntries needs to return somehing else than Void? - ideally you make it from the start to return an empty AppendEntriesResponse, and then you can extend that proto.

    https://developers.google.com/protocol-buffers/docs/proto3#u...

    (edit again, also the package should not be called just "proto")

  • by ryanworl on 12/15/21, 11:38 PM

    Am I correct that this orders and makes SQL statements durable via Raft and then executes them serially against a local SQLite database?

    How would you use this to perform a transaction, or at minimum a compare-and-swap operation against a row? There doesn't seem to be any binding between a client and a connection for you to implement transactions here.

  • by quaffapint on 12/15/21, 11:58 PM

    Same idea as https://github.com/rqlite/rqlite I presume but in rust vs go?
  • by dochtman on 12/16/21, 2:10 AM

    The announcement here talks more about the context:

    https://glaubercosta-11125.medium.com/728187331f53

    It also mentions rqlite and dqlite.

  • by fulafel on 12/16/21, 6:59 AM

    How's the security and security defaults and are these documented somewhere? Are the "cargo run" examples safe to run as is in a networked environment without random people on the internet pwning your cluster? Is there confidentiality & authentication in the inter node communications?
  • by DeepYogurt on 12/16/21, 12:38 AM

    Isn't the whole point of SQLite to not be distributed?