diff --git a/Cargo.toml b/Cargo.toml
index 8194be3..4aa1379 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -2,7 +2,7 @@
[package]
name = "constellation-rs"
-version = "0.1.2"
+version = "0.1.3"
license = "Apache-2.0"
authors = ["Alec Mocatta "]
categories = ["development-tools","network-programming","concurrency","asynchronous","command-line-utilities"]
@@ -12,7 +12,7 @@ Constellation is a framework for Rust (nightly) that aides in the writing, debug
"""
repository = "https://github.com/alecmocatta/constellation"
homepage = "https://github.com/alecmocatta/constellation"
-documentation = "https://docs.rs/constellation-rs/0.1.2"
+documentation = "https://docs.rs/constellation-rs/0.1.3"
readme = "README.md"
edition = "2018"
autotests = true
@@ -32,7 +32,7 @@ fringe = ["serde_pipe/fringe"]
no_alloc = ["constellation-internal/no_alloc"]
[dependencies]
-constellation-internal = { path = "constellation-internal", version = "=0.1.2" }
+constellation-internal = { path = "constellation-internal", version = "=0.1.3" }
atty = "0.2"
backtrace = "0.3"
bincode = "1.0"
diff --git a/README.md b/README.md
index 4580125..cc75c26 100644
--- a/README.md
+++ b/README.md
@@ -13,7 +13,7 @@
- Docs
+ Docs
Constellation is a framework for Rust (nightly) that aides in the writing, debugging and deployment of distributed programs. It draws heavily from [Erlang/OTP](https://en.wikipedia.org/wiki/Erlang_(programming_language)), [MPI](https://en.wikipedia.org/wiki/Message_Passing_Interface), and [CSP](https://en.wikipedia.org/wiki/Communicating_sequential_processes); and leverages the Rust ecosystem where it can including [serde](https://serde.rs/) + [bincode](https://github.com/servo/bincode) for network serialization, and [mio](https://github.com/tokio-rs/mio) and [futures-rs](https://github.com/rust-lang-nursery/futures-rs) for asynchronous channels over TCP.
@@ -27,13 +27,13 @@ For leveraging Constellation directly, read on.
## Constellation framework
-* Constellation is a framework that's initialised with a call to [`init()`](https://docs.rs/constellation-rs/0.1.2/constellation/fn.init.html) at the beginning of your program.
-* You can [`spawn(closure)`](https://docs.rs/constellation-rs/0.1.2/constellation/fn.spawn.html) new processes, which run `closure`.
+* Constellation is a framework that's initialised with a call to [`init()`](https://docs.rs/constellation-rs/0.1.3/constellation/fn.init.html) at the beginning of your program.
+* You can [`spawn(closure)`](https://docs.rs/constellation-rs/0.1.3/constellation/fn.spawn.html) new processes, which run `closure`.
* `spawn(closure)` returns the Pid of the new process.
-* You can communicate between processes by creating channels with [`Sender::new(remote_pid)`](https://docs.rs/constellation-rs/0.1.2/constellation/struct.Sender.html#method.new) and [`Receiver::new(remote_pid)`](https://docs.rs/constellation-rs/0.1.2/constellation/struct.Receiver.html#method.new).
-* Channels can be used asynchronously with [`sender.send(value).await`](https://docs.rs/constellation-rs/0.1.2/constellation/struct.Sender.html#method.send) and [`receiver.recv().await`](https://docs.rs/constellation-rs/0.1.2/constellation/struct.Receiver.html#method.recv).
+* You can communicate between processes by creating channels with [`Sender::new(remote_pid)`](https://docs.rs/constellation-rs/0.1.3/constellation/struct.Sender.html#method.new) and [`Receiver::new(remote_pid)`](https://docs.rs/constellation-rs/0.1.3/constellation/struct.Receiver.html#method.new).
+* Channels can be used asynchronously with [`sender.send(value).await`](https://docs.rs/constellation-rs/0.1.3/constellation/struct.Sender.html#method.send) and [`receiver.recv().await`](https://docs.rs/constellation-rs/0.1.3/constellation/struct.Receiver.html#method.recv).
* [futures-rs](https://github.com/rust-lang-nursery/futures-rs) provides useful functions and adapters including `select()` and `join()` for working with channels.
-* You can also block on channels with the [`.block()`](https://docs.rs/constellation-rs/0.1.2/constellation/trait.FutureExt1.html#method.block) convenience method: `sender.send().block()` and `receiver.recv().block()`.
+* You can also block on channels with the [`.block()`](https://docs.rs/constellation-rs/0.1.3/constellation/trait.FutureExt1.html#method.block) convenience method: `sender.send().block()` and `receiver.recv().block()`.
* For more information on asynchronous programming in Rust check out the [Async Book](https://rust-lang.github.io/async-book/index.html)!
Here's a simple example recursively spawning processes to distribute the task of finding Fibonacci numbers:
@@ -173,7 +173,7 @@ It listens on a configurable address for binaries with resource requirements to
Rather than being invoked by a fork inside the user process, it is started automatically at constellation master-initialisation time. It listens on a configurable address for `cargo deploy`ments, at which point it runs the binary with special env vars that trigger `init()` to print resource requirements of the initial process and exit, before sending the binary with the determined resource requirements to the **constellation master**. Upon being successfully allocated, it is executed by a **constellation** instance. Inside `init()`, it connects back to the **bridge**, which dutifully forwards its output to `cargo deploy`.
#### `cargo deploy`
-This is a command [added to](https://doc.rust-lang.org/book/second-edition/ch14-05-extending-cargo.html#extending-cargo-with-custom-commands) cargo that under the hood invokes `cargo run`, except that rather than the resulting binary being run locally, it is sent off to the **bridge**. The **bridge** then sends back any output, which is output formatted at the terminal.
+This is a command [added to](https://doc.rust-lang.org/book/ch14-05-extending-cargo.html) cargo that under the hood invokes `cargo run`, except that rather than the resulting binary being run locally, it is sent off to the **bridge**. The **bridge** then sends back any output, which is output formatted at the terminal.
## How to use it
```toml
@@ -198,7 +198,7 @@ $ cargo run
Machine 2:
```bash
cargo install constellation-rs
-constellation 10.0.0.2:9999
+constellation 10.0.0.2:9999 # local address to bind to
```
Machine 3:
```bash
@@ -208,15 +208,15 @@ constellation 10.0.0.3:9999
Machine 1:
```bash
cargo install constellation-rs
-constellation 10.0.0.1:9999 nodex.toml
+constellation 10.0.0.1:9999 nodes.toml
```
nodes.toml:
```toml
[[nodes]]
-fabric_addr = "10.0.0.1:9999"
-bridge_bind = "10.0.0.1:8888"
-mem = "100 GiB"
-cpu = 16
+fabric_addr = "10.0.0.1:9999" # local address to bind to
+bridge_bind = "10.0.0.1:8888" # local address of the bridge to bind to
+mem = "100 GiB" # resource capacity of the node
+cpu = 16 # number of logical cores
[[nodes]]
fabric_addr = "10.0.0.2:9999"
@@ -231,7 +231,7 @@ cpu = 16
Your laptop:
```text
cargo install constellation-rs
-cargo deploy 10.0.0.1:8888 --release
+cargo deploy 10.0.0.1:8888 --release # address of the bridge
833d3de:
Hello, world!
exited
@@ -248,7 +248,7 @@ Please file an issue if you experience any other requirements.
## API
-[see Rust doc](https://docs.rs/constellation-rs/0.1.2)
+[see Rust doc](https://docs.rs/constellation-rs/0.1.3)
## Testing
diff --git a/constellation-internal/Cargo.toml b/constellation-internal/Cargo.toml
index 85e105f..b3a81b3 100644
--- a/constellation-internal/Cargo.toml
+++ b/constellation-internal/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "constellation-internal"
-version = "0.1.2"
+version = "0.1.3"
license = "Apache-2.0"
authors = ["Alec Mocatta "]
categories = ["development-tools","network-programming","concurrency","asynchronous"]
@@ -10,7 +10,7 @@ Common components for the `constellation` framework.
"""
repository = "https://github.com/alecmocatta/constellation"
homepage = "https://github.com/alecmocatta/constellation"
-documentation = "https://docs.rs/constellation-internal/0.1.2"
+documentation = "https://docs.rs/constellation-internal/0.1.3"
edition = "2018"
[features]
diff --git a/constellation-internal/src/lib.rs b/constellation-internal/src/lib.rs
index 9e7f84e..8fd6f79 100644
--- a/constellation-internal/src/lib.rs
+++ b/constellation-internal/src/lib.rs
@@ -1,4 +1,4 @@
-#![doc(html_root_url = "https://docs.rs/constellation-internal/0.1.2")]
+#![doc(html_root_url = "https://docs.rs/constellation-internal/0.1.3")]
#![warn(
// missing_copy_implementations,
missing_debug_implementations,
diff --git a/src/lib.rs b/src/lib.rs
index 0922aa1..783ea7d 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -9,7 +9,7 @@
//!
//! The only requirement to use is that [`init()`](init) must be called immediately inside your application's `main()` function.
-#![doc(html_root_url = "https://docs.rs/constellation-rs/0.1.2")]
+#![doc(html_root_url = "https://docs.rs/constellation-rs/0.1.3")]
#![cfg_attr(feature = "nightly", feature(read_initializer))]
#![feature(cfg_doctest)]
#![warn(