mirror of
https://github.com/fluencelabs/aquavm
synced 2024-12-04 15:20:16 +00:00
.circleci | ||
artifacts | ||
crates | ||
stepper | ||
stepper-lib | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
CHANGELOG.md | ||
Config.toml | ||
LICENSE | ||
README.md |
Aquamarine
Aquamarine is a distributed choreography language & platform
AIR
The current version supports the following instructions:
- call
- par
- seq
- fold
- next
- null
Examples
(seq (
(call (%current_peer_id1% (local_service_id local_fn_name) () result_name_1))
(call (remote_peer_id (service_id fn_name) () result_name_2))
)),
This instruction sequence contains two call instructions in the sequential order:
- call a function with
local_fn_name
name of a local service withlocal_service_id
id and bind result toresult_name
- call a remote peer with
remote_peer_id
id
(fold (Iterable i
(seq (
(call (%current_peer_id% (local_service_id local_fn_name) (i) acc[]))
(next i)
)
)))
This example is an analog of left fold. It iterates over Iterable
and on each iteration calls local_service_id
and puts result to acc
.