[HN Gopher] Soul - A SQLite RESTful Server
       ___________________________________________________________________
        
       Soul - A SQLite RESTful Server
        
       Author : thevahidal
       Score  : 36 points
       Date   : 2022-10-29 19:21 UTC (3 hours ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | aaviator42 wrote:
       | This is probably not ready to be used in production by others,
       | but I wrote a library that gives you a key-value storage
       | interface to SQlite files: https://github.com/aaviator42/StorX
       | 
       | I've been dogfooding for a while by using it in my small side
       | projects.
       | 
       | And there's a basic API too, to use it over a network:
       | https://github.com/aaviator42/StorX-API
        
         | thevahidal wrote:
         | Hi aaviator, Thanks for your recommendation, I'll make sure to
         | check it out.
        
       | feldrim wrote:
       | Looks like a well structured one. Great. It'd also be nice to see
       | the API docs on Wiki though. I like rqlite's simple
       | documentation, for instance. [0]
       | 
       | https://github.com/rqlite/rqlite/blob/master/DOC/DATA_API.md
        
         | thevahidal wrote:
         | Thanks feldrim, I'll give it a high priority for sure. Also
         | thanks for the rqlite, I'll make sure to check it out.
        
           | feldrim wrote:
           | Also, I found this report that might be helpful for you.
           | https://github.com/dbohdan/automatic-api/
        
       | mongol wrote:
       | This looks useful. But some examples of how the http responses
       | look without spinning it up would be helpful.
        
         | thevahidal wrote:
         | Thanks Mongol, Yeah exactly I should create a wiki for it.
        
       | hsbauauvhabzb wrote:
       | This needs auth with a randomly generated password by default.
       | Standing up products like this is exactly how data breaches
       | happen, it's effectively sql injection as a feature.
        
         | thevahidal wrote:
         | Exactly, more generally I'm thinking of a way for Soul to be
         | extendable via plugins, which one of the most important one is
         | authentication / authorization and permissions level.
        
           | hsbauauvhabzb wrote:
           | _as a default_
        
             | thevahidal wrote:
             | Yeah it's reasonable.
        
       | thevahidal wrote:
       | Hi everyone, for the last couple of weeks I started to work on
       | Soul, which a SQLite RESTful server. Basically it takes an SQLite
       | file and create CRUD endpoints for it. Right now it consists of
       | Soul CLI and Soul Studio (Which studio is at the early stages of
       | development). Studio is going to be GUI for soul that let's users
       | to work with their database in a graphical way.
       | 
       | Eventually I want Soul to be a simple backend-as-a-service that
       | people can use it to quickly start their ideas.
       | 
       | Please let me know if you have any ideas to improve Soul, or how
       | it'll become useful for your project.
        
         | lucasyvas wrote:
         | Looks awesome! I'm not sure if it would be one of your goals,
         | but to me a killer piece of projects like this is realtime
         | notifications. Supabase has something like this for Postgres.
         | 
         | There are an interesting number of options for SQL via HTTP and
         | SQL via GraphQL popping up in general - some of these might
         | have some features worth looking into.
        
           | thevahidal wrote:
           | Hi Lucasycas, Thanks for your kind words. Real-time events /
           | Websockets is definitely one of the must-have features for
           | Soul. Right now I'm not sure how to approach it, but I
           | welcome any contributions for it.
        
         | le-mark wrote:
         | What's the story around concurrency and concurrent updates to
         | the db file? Are all queries in a single thread or are
         | concurrent sql statements allowed to execute? Are there any
         | benchmarks vs Postgres for example?
        
           | thevahidal wrote:
           | Hi le-mark, as I mentioned Soul is really young and I just
           | started to work on it. For now my goal is to create a decent
           | prototype out of it and when the concept is matured enough,
           | we can go towards performance. There's no benchmark done yet,
           | but I invite you to talk more about the things you think is
           | important to consider.
        
       | gl9 wrote:
       | Really awesome! I sent you an email. There are so many
       | applications for this.
        
         | thevahidal wrote:
         | Thanks gl9, I'll respond to your email asap.
        
       | chiubaca wrote:
       | https://pocketbase.io is doing something similar but are a bit
       | further ahead.
        
         | thevahidal wrote:
         | Yeah Pocketbase is one of my main inspirations. I admire it a
         | lot and the reason I started Soul, is because I think
         | Javascript / Node.js could potentially be a better language to
         | approach it as it's more popular than Go and for example to a
         | huge community of Front-end developers it would be easier to
         | adopt as they are already familiar with it.
        
       ___________________________________________________________________
       (page generated 2022-10-29 23:00 UTC)