ufko.org Simple SQLite3 RAM server toy:
Client: Any program/function able to send a string into TCP socket
$: echo "create table t1 (name, age)" | nc localhost 7306 $: echo "insert into t1 values ('jack', 30)" | nc localhost 7306 $: echo "select * from t1" | nc localhost 7306 jack 30 $: echo ".dump" | nc localhost 7306 Dumped $: echo ".exit" | nc localhost 7306 Dump on exit Bye
Server:
proc sqlserver {} { sqlite3 db :memory: # db timeout and all that PRAGMA jazz # .... if {[file exists dump.sq3]} { puts "Dump file found" puts "Restoring data from dump file into memory ..." db restore dump.sq3 } proc sqlserver_handle_client {sock addr port} { puts "New connection from $addr:$port" gets $sock cmd puts "Executing: $cmd" if {$cmd eq ".ping"} { puts $sock "pong" } elseif {$cmd eq ".dump"} { db backup main dump.sq3 puts "Dumped" puts $sock "Dumped" } elseif {$cmd eq ".exit"} { db backup main dump.sq3 puts "Dump on exit" puts $sock "Dump on exit" puts $sock "Bye" db close exit } else { set result [db eval $cmd] puts $sock $result ;# JSON? } flush $sock close $sock } set serverSocket [socket -server sqlserver_handle_client 7306] puts "SQLite in memory server running on port 7306" vwait forever }