Chiselstore: an embeddable, distributed SQLite for Rust

  • 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")

  • 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.

  • Same idea as https://github.com/rqlite/rqlite I presume but in rust vs go?

  • The announcement here talks more about the context:

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

    It also mentions rqlite and dqlite.

  • 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?

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