#!/usr/bin/env perl6 use JSON::Fast ; sub MAIN( :$server='0.0.0.0' , :$port=3333 ) { my %db ; react { whenever IO::Socket::Async.listen( $server , $port ) -> $conn { whenever $conn.Supply.lines -> $line { my %response = 'status' => '' ; my $msg = from-json $line ; say $msg.perl ; given $msg{"function"} { when 'set' { %db{ $msg } = $msg ; %response = 'ok' ; } when 'get' { %response = $msg ; %response = %db{ $msg } ; %response = 'ok' ; } when 'dump' { %response = %db ; } when 'delete' { %db{ $msg }:delete; %response = 'ok' ; } } $conn.print( to-json(%response, :!pretty) ~ "\n" ) ; LAST { $conn.close ; } QUIT { default { $conn.close ; say "oh no, $_";}} CATCH { default { say .^name, ': ', .Str , " handled in $?LINE";}} } } } }