Releases: bots-garden/simplism
v0.1.3 🪐 [saturn]
v0.1.2 🌍 [earth]
What's new
Update with the upgrade of the
🐳 Docker image updated docker.io/k33g/simplism:0.1.2
size: 9MB
📝 Simplisme IDE updated, exists for arm and amd: https://github.com/bots-garden/simplism-ide
New project: 📦 Simplism Builder, a 🐳 Docker Compose project to build, run and test wasm Simplism plugins:
Features
- 🌸 Gardening.
- Improvements and fixes of the FaaS mode (aka "Spawn mode")
- Tabular outputs for the API
- Kill a service by its name
- Change a service name
- New samples: how to serve HTML:
POC/POV Simplism CLI
🚧 It's a work in progress. Right now, it's a simple bash script I use to test the spawn mode of Simplism: https://github.com/bots-garden/simplism/blob/main/tools/simplismctl
v0.1.1 🌕 [full moon]
What's new
Update with the upgrade of the Extism Go SDK: v1.0.0
🐳 Docker image updated docker.io/k33g/simplism:0.1.1
size: 8.6MB
📝 Simplisme IDE updated: https://github.com/bots-garden/simplism-ide
Benchmarks
Performance has improved
v0.1.0
Wasm Go
Summary:
Total: 0.1513 secs
Slowest: 0.1137 secs
Fastest: 0.0001 secs
Average: 0.0377 secs
Requests/sec: 19833.8092
Total data: 66000 bytes
Size/request: 22 bytes
Response time histogram:
0.000 [1] |
0.011 [201] |■■■■■■■
0.023 [236] |■■■■■■■■
0.034 [1190] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
0.046 [574] |■■■■■■■■■■■■■■■■■■■
0.057 [237] |■■■■■■■■
0.068 [282] |■■■■■■■■■
0.080 [190] |■■■■■■
0.091 [55] |■■
0.102 [28] |■
0.114 [6] |
Latency distribution:
10% in 0.0204 secs
25% in 0.0279 secs
50% in 0.0321 secs
75% in 0.0468 secs
90% in 0.0671 secs
95% in 0.0734 secs
99% in 0.0927 secs
Details (average, fastest, slowest):
DNS+dialup: 0.0052 secs, 0.0001 secs, 0.1137 secs
DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0000 secs
req write: 0.0014 secs, 0.0000 secs, 0.0814 secs
resp wait: 0.0243 secs, 0.0001 secs, 0.0686 secs
resp read: 0.0009 secs, 0.0000 secs, 0.0443 secs
Status code distribution:
[200] 3000 responses
Wasm Rust
Summary:
Total: 0.2298 secs
Slowest: 0.1506 secs
Fastest: 0.0001 secs
Average: 0.0585 secs
Requests/sec: 13057.5198
Total data: 66000 bytes
Size/request: 22 bytes
Response time histogram:
0.000 [1] |
0.015 [80] |■■
0.030 [31] |■
0.045 [261] |■■■■■■■
0.060 [1420] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
0.075 [865] |■■■■■■■■■■■■■■■■■■■■■■■■
0.090 [240] |■■■■■■■
0.105 [64] |■■
0.121 [23] |■
0.136 [12] |
0.151 [3] |
Latency distribution:
10% in 0.0433 secs
25% in 0.0537 secs
50% in 0.0582 secs
75% in 0.0638 secs
90% in 0.0778 secs
95% in 0.0869 secs
99% in 0.1071 secs
Details (average, fastest, slowest):
DNS+dialup: 0.0065 secs, 0.0001 secs, 0.1506 secs
DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0000 secs
req write: 0.0019 secs, 0.0000 secs, 0.0363 secs
resp wait: 0.0459 secs, 0.0001 secs, 0.1216 secs
resp read: 0.0003 secs, 0.0000 secs, 0.0219 secs
Status code distribution:
[200] 3000 responses
v0.1.1
Wasm Go
Summary:
Total: 0.1333 secs
Slowest: 0.1197 secs
Fastest: 0.0000 secs
Average: 0.0306 secs
Requests/sec: 22506.5128
Total data: 66000 bytes
Size/request: 22 bytes
Response time histogram:
0.000 [1] |
0.012 [1450] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
0.024 [178] |■■■■■
0.036 [377] |■■■■■■■■■■
0.048 [167] |■■■■■
0.060 [188] |■■■■■
0.072 [227] |■■■■■■
0.084 [119] |■■■
0.096 [50] |■
0.108 [174] |■■■■■
0.120 [69] |■■
Latency distribution:
10% in 0.0009 secs
25% in 0.0039 secs
50% in 0.0143 secs
75% in 0.0519 secs
90% in 0.0826 secs
95% in 0.1025 secs
99% in 0.1129 secs
Details (average, fastest, slowest):
DNS+dialup: 0.0043 secs, 0.0000 secs, 0.1197 secs
DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0000 secs
req write: 0.0033 secs, 0.0000 secs, 0.0717 secs
resp wait: 0.0100 secs, 0.0000 secs, 0.0588 secs
resp read: 0.0028 secs, 0.0000 secs, 0.0609 secs
Status code distribution:
[200] 3000 responses
Wasm Rust
Summary:
Total: 0.1289 secs
Slowest: 0.1120 secs
Fastest: 0.0000 secs
Average: 0.0317 secs
Requests/sec: 23282.2922
Total data: 66000 bytes
Size/request: 22 bytes
Response time histogram:
0.000 [1] |
0.011 [1133] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
0.022 [329] |■■■■■■■■■■■■
0.034 [267] |■■■■■■■■■
0.045 [445] |■■■■■■■■■■■■■■■■
0.056 [201] |■■■■■■■
0.067 [113] |■■■■
0.078 [331] |■■■■■■■■■■■■
0.090 [27] |■
0.101 [26] |■
0.112 [127] |■■■■
Latency distribution:
10% in 0.0028 secs
25% in 0.0068 secs
50% in 0.0238 secs
75% in 0.0529 secs
90% in 0.0736 secs
95% in 0.0899 secs
99% in 0.1096 secs
Details (average, fastest, slowest):
DNS+dialup: 0.0055 secs, 0.0000 secs, 0.1120 secs
DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0000 secs
req write: 0.0019 secs, 0.0000 secs, 0.0706 secs
resp wait: 0.0125 secs, 0.0000 secs, 0.0524 secs
resp read: 0.0043 secs, 0.0000 secs, 0.0619 secs
Status code distribution:
[200] 3000 responses
v0.1.0 🐋 [whale]
What's new
- 🌍 Increment automatically the HTTP port when deploying a plug-in when "spawn" mode
- 🚀 Re-deploy wasm plug-ins when the spawn mode is restarted
- 🐛 Fix a previous bug: change route when the process is killed
🐳 Docker image updated docker.io/k33g/simplism:0.1.0
size: 8.54MB
v0.0.9 🐳 [spouting whale]
What's new
- Define the path of the store db file (it's useful for backup or volume usage with Kubernetes)
- Simplism generators:
- JavaScript plugin added (! the build does not work on an arm architecture because of binaryen, but once built, you can use the wasm plugin everywhere)
- The generators produce a 🐳
Dockerfile
and a 🍊.gitpod.yml
files
- Registry mode: you can now use Simplism as a "tiny wasm registry" (doc: https://github.com/bots-garden/simplism/blob/main/docs/use-the-registry-mode.md)
- First draft of documentation to explain how to deploy Simplism services on Kubernetes + yaml manifests: https://github.com/bots-garden/simplism/blob/main/k8s/README.md
- New 🐳 Docker Compose file with the coder/code-server, then it's possible to contribute to Simplism with a ready-to-use environment: simplism-ide
🐳 Docker image updated docker.io/k33g/simplism:0.0.9
size: 8.41MB
v0.0.8 🌼 [flower]
What's new
- JavaScript template generator added
- When you use
simplism generate
, it will generate these files:Dockerfile
and a.gitpod.yml
- You can define the path of the store database file (
--store-path=./db/my-store.db
) - More documentation
v0.0.7 🎅 [santa]
What's new?
- 🚀 Spawn mode: https://github.com/bots-garden/simplism/blob/main/docs/use-the-spawn-mode.md
- 💥 Killing process API
- 📦 Persistence web API: https://github.com/bots-garden/simplism/blob/main/docs/use-the-store-api.md
- 📝 Documentation: https://github.com/bots-garden/simplism/blob/main/docs/README.md
- ☸️ Call the functions of the Simplism processes through the discovery Simplism server (kind of reverse proxy): https://github.com/bots-garden/simplism/blob/main/docs/use-service-discovery.md#query-the-services-through-the-discovery-service
- 🐳 docker image of Simplism:
k33g/simplism:0.0.7
, usage: https://github.com/bots-garden/simplism/blob/main/docs/dockerize-a-simplism-service.md - 👨🏫 tutorial: deploy Simplism to K8S: https://github.com/bots-garden/simplism/blob/main/docs/deploy-service-to-k8s.md
v0.0.6 🪲 [beetle]
What's new?
Simplism comes with a service discovery feature. It can be used to discover the running Simplism servers.
- One of the servers (simplism service) can be a service discovery server. The service discovery server can be configured with the
--service-discovery
flag:
simplism listen discovery-service/discovery-service.wasm handle \
--http-port 9000 \
--log-level info \
--service-discovery true \
--admin-discovery-token people-are-strange
--admin-discovery-token
is not mandatory, but it's probably a good idea to set it.
- Then, the other services can be configured with the
--discovery-endpoint
flag:
simplism listen service-one/service-one.wasm handle \
--http-port 8001 \
--log-level info \
--discovery-endpoint http://localhost:9000/discovery \
--admin-discovery-token people-are-strange &
simplism listen service-two/service-two.wasm handle \
--http-port 8002 \
--log-level info \
--discovery-endpoint http://localhost:9000/discovery \
--admin-discovery-token people-are-strange &
simplism listen service-three/service-three.wasm handle \
--http-port 8003 \
--log-level info \
--discovery-endpoint http://localhost:9000/discovery \
--admin-discovery-token people-are-strange &
the 3 services will be discovered by the service discovery server. Every services will regularly post information to the service discovery server.
- You can query the service discovery server with the
/discovery
endpoint to get the list of the running services:
curl http://localhost:9000/discovery \
-H 'admin-discovery-token:people-are-strange'
- You can use the flock mode jointly with the service discovery:
service-discovery:
wasm-file: ./discovery/discovery.wasm
wasm-function: handle
http-port: 9000
log-level: info
service-discovery: true
admin-discovery-token: this-is-the-way
basestar-mother:
wasm-file: ./basestar/basestar.wasm
wasm-function: handle
http-port: 8010
log-level: info
discovery-endpoint: http://localhost:9000/discovery
admin-discovery-token: this-is-the-way
raider-1:
wasm-file: ./raider/raider.wasm
wasm-function: handle
http-port: 8001
log-level: info
discovery-endpoint: http://localhost:9000/discovery
admin-discovery-token: this-is-the-way
v0.0.5 🐝 [bee]
Changelog
- 3a51903 Merge pull request #18 from bots-garden/env-vars-support
- 0ad1aa7 ✨ Introduce new feature(s): env vars support
- ceb4c88 🍊 Gitpodify.
- 97ed1a6 🍊 Gitpodify: update
- 6bb4cf3 📦 simplism v0.0.5 🐝 [bee]
What's new?
Now you can use environment variables with Simplism:
export MESSAGE="👋 Hello World 🌍"
export ABOUT="🥰 Simplism has a cute mascot 🤗"
simplism listen \
envvars.wasm handle \
--http-port 8080 \
--log-level info \
--env '["MESSAGE","ABOUT"]'
Then use the pdk.GetConfig
method to get the value of the variables:
message, _ := pdk.GetConfig("MESSAGE")
about, _ := pdk.GetConfig("ABOUT")
You can run the wasm plug-in thanks to a yaml config file:
# config.yml
envvars-plugin:
wasm-file: ./envvars.wasm
wasm-function: handle
http-port: 8080
log-level: info
env: '["MESSAGE","ABOUT"]'
and use it like this:
export MESSAGE="👋 Hello World 🌍"
export ABOUT="🥰 Simplism has a cute mascot 🤗"
simplism config ./config.yml envvars-plugin
v0.0.4 🐙 [octopus]
86ccf49 📦 simplism v0.0.4 🐙 [octopus]
Introduced with the former version:
🐑 flock mode 🚀: start several simplism instances from a config file