pico-lang

Crates.iopico-lang
lib.rspico-lang
version0.0.4
sourcesrc
created_at2020-08-16 11:21:02.414376
updated_at2020-08-25 19:55:27.804966
descriptionJSON Logic like language
homepagehttps://github.com/c0d3x42/pico-rs
repositoryhttps://github.com/c0d3x42/pico-rs
max_upload_size
id277197
size152,191
vince (c0d3x42)

documentation

README

Pico-Lang

Rust

A minimal and safe programming language expressed in JSON

Install

cargo install pico-lang

build

cargo build

or just run it

cargo run

enable nats (incomplete)

cargo run --features srv_nats

PicoRules

JSON formmated file that encapsulates your logic

see simple.json example rule file

start server with

cargo run -- --rules simple.json

submit rule execution

curl -X POST localhost:8000/submit -d '{"nochicken": 1}' -H 'Content-Type: application/json'

returns:

{"namespaced":{},"input":{"nochicken":1},"locals":{"enochicken":"must be no hens"}}

and with a chicken:

curl -X POST localhost:8000/submit -d '{"chicken": 1}' -H 'Content-Type: application/json'

returns:

{"locals":{"egg":"must have been layed"},"namespaced":{},"input":{"chicken":1}}

warp submit

curl -v -X POST localhost:8000/submit -d '{"xp": "x1xxx", "y": "y2"}' -H 'Content-Type: application/json'
curl -v -X POST localhost:8000/submit -d '{"xp": "x1xxx", "y": "y2", "json": {"ja": "rules}}' -H 'Content-Type: application/json'

benchmark

wrk -t 5 -c 40 -s bench/sub.lua http://localhost:8000/submit
Commit count: 131

cargo fmt