]> git.lizzy.rs Git - connect-rs.git/commitdiff
explain protobuf choice and bump version to 0.1.0
authorSachandhan Ganesh <sachan.ganesh@gmail.com>
Thu, 4 Feb 2021 19:38:17 +0000 (11:38 -0800)
committerSachandhan Ganesh <sachan.ganesh@gmail.com>
Thu, 4 Feb 2021 19:38:17 +0000 (11:38 -0800)
Cargo.toml
README.md
src/lib.rs

index 47d39d5b2ec2c6158750c207a12bd65844be5e3f..d17cccbc90bb7ad7b7746d68213489b12951dbe5 100644 (file)
@@ -1,6 +1,6 @@
 [package]
 name = "connect"
-version = "0.0.8"
+version = "0.1.0"
 edition = "2018"
 authors = ["Sachandhan Ganesh <sachan.ganesh@gmail.com>"]
 description = "message queue abstraction over async network streams"
index 41ce2a7a42db54ec8d5714ca52b5dd5669a65fb9..21e441a2c2081343d5c4a4912b06a8bab718dc1a 100644 (file)
--- a/README.md
+++ b/README.md
@@ -8,8 +8,8 @@
 [docs-badge]: https://docs.rs/connect/badge.svg
 [docs-url]: https://docs.rs/connect
 
-This Rust crate provides a reliable, fault-tolerant, and brokerless message-queue abstraction over
-asynchronous network streams.
+This Rust crate provides a simple brokerless message-queue abstraction over asynchronous network
+streams.
 
 ## Why?
 When building networked applications, developers shouldn't have to focus on repeatedly solving
@@ -17,6 +17,10 @@ the problem of reliable, fault-tolerant message delivery over byte-streams. By u
 queue abstraction, crate users can focus on core application logic and leave the low-level
 networking and message-queue guarantees to the abstraction.
 
+## Examples
+Please use the [examples](https://github.com/sachanganesh/connect-rs/tree/main/examples)
+provided to help understand crate usage.
+
 ## Protobuf
 This crate relies on the use of [Protocol Buffers](https://developers.google.com/protocol-buffers)
 due to it being widely adopted and industry-proven. All messages are Protobuf messages that
@@ -24,10 +28,11 @@ are packed into a Protobuf `Any` type and then sent over the wire. Message recip
 decide what Protobuf message type it is, and correspondingly unpack the `Any` into a particular
 message type.
 
-## Examples
-Please use the [examples](https://github.com/sachanganesh/connect-rs/tree/main/examples)
-provided to help understand crate usage.
-
+Protobuf was chosen when the library hit a roadblock with Rust's `TypeId` potentially not being
+consistent between Rust compiler versions. The crate requires a consistent way to determine what
+type of message is received, so it can appropriately deserialize the message from network bytes.
+Until the Rust ecosystem around reflection improves, the crate will use Protobuf to fill the
+void.
 
 ## Feature Status
 
index 85500272bcff76f5c719b6facc65ce334089f120..4f1fe18ac1a8b8506465600a1c1c77b65065aa95 100644 (file)
@@ -1,5 +1,5 @@
-//! This crate provides a reliable, fault-tolerant, and brokerless message-queue abstraction over
-//! asynchronous network streams.
+//! This crate provides a simple brokerless message-queue abstraction over asynchronous network
+//! streams.
 //!
 //! # Why?
 //! When building networked applications, developers shouldn't have to focus on repeatedly solving
@@ -7,6 +7,10 @@
 //! queue abstraction, crate users can focus on core application logic and leave the low-level
 //! networking and message-queue guarantees to the abstraction.
 //!
+//! # Examples
+//! Please use the [examples](https://github.com/sachanganesh/connect-rs/tree/main/examples)
+//! provided to help understand crate usage.
+//!
 //! # Protobuf
 //! This crate relies on the use of [Protocol Buffers](https://developers.google.com/protocol-buffers)
 //! due to it being widely adopted and industry-proven. All messages are Protobuf messages that
 //! decide what Protobuf message type it is, and correspondingly unpack the `Any` into a particular
 //! message type.
 //!
-//! # Examples
-//! Please use the [examples](https://github.com/sachanganesh/connect-rs/tree/main/examples)
-//! provided to help understand crate usage.
+//! Protobuf was chosen when the library hit a roadblock with Rust's `TypeId` potentially not being
+//! consistent between Rust compiler versions. The crate requires a consistent way to determine what
+//! type of message is received, so it can appropriately deserialize the message from network bytes.
+//! Until the Rust ecosystem around reflection improves, the crate will use Protobuf to fill the
+//! void.
 
 mod reader;
 pub(crate) mod schema;