diff --git a/README.md b/README.md index 7537efe..04eef30 100644 --- a/README.md +++ b/README.md @@ -4,11 +4,6 @@ Brings the protobuf-based [Connect-Web RPC framework](https://connect.build/docs/introduction) to Rust via idiomatic [Axum](https://github.com/tokio-rs/axum). -# Alpha software โš ๏ธ - -Project is under active development for internal use; minor revision bumps are -often breaking. - # Features ๐Ÿ” - Integrates into existing Axum HTTP applications seamlessly @@ -28,6 +23,16 @@ often breaking. - All the other amazing benefits that come with Axum, like the community, documentation and performance! +# Caution โš ๏ธ + +We use `axum-connect` in production, but I don't kow that anyone with more sense +does. It's written in Rust which obviously offers some amazing compiler +guarantees, but it's not well tested or battle-proven yet. Do what you will with +that information. + +Please let me know if you're using `axum-connect`! And open issues if you find a +bug. + # Getting Started ๐Ÿค“ _Prior knowledge with [Protobuf](https://github.com/protocolbuffers/protobuf) @@ -82,10 +87,14 @@ use axum_connect_build::{axum_connect_codegen, AxumConnectGenSettings}; fn main() { // This helper will use `proto` as the import path, and globs all .proto - // files in the `proto` directory. You can build an AxumConnectGenSettings - // manually too, if you wish. + // files in the `proto` directory. + // + // Note that you might need to re-save the `build.rs` file after updating + // a proto file to get rust-analyzer to pickup the change. I haven't put + // time into looking for a fix to that yet. let settings = AxumConnectGenSettings::from_directory_recursive("proto") .expect("failed to glob proto files"); + axum_connect_codegen(settings).unwrap(); } ``` @@ -183,7 +192,6 @@ handlers. - A plan for forward-compatibility - Bring everything in-line with `connect-web` and... - Comprehensive integration tests -- A first-stable launch ## More Distant Goals ๐ŸŒœ @@ -220,11 +228,11 @@ will disable the download entirely. Prost stopped shipping `protoc` binaries (a decision I disagree with) so `axum-connect-build` internally uses -[protoc-fetcher](https://crates.io/crates/protoc-fetcher) download and resolve a -copy of `protoc`. This is far more turnkey than forcing every build environment -(often Heroku and/or Docker) to have a recent `protoc` binary pre-installed. -This behavior can be disabled if you disagree, you need to comply with corporate -policy, or your build environment is offline. +[protoc-fetcher](https://crates.io/crates/protoc-fetcher) to download and +resolve a copy of `protoc`. This is far more turnkey than forcing every build +environment (often Heroku and/or Docker) to have a recent `protoc` binary +pre-installed. This behavior can be disabled if you disagree, or if you need to +comply with corporate policy, or your build environment is offline. I would someday like to replace all of it with a new 'lean and mean' protoc library for the Rust community. One with a built-in parser, that @@ -232,12 +240,6 @@ supports only the latest proto3 syntax as well as the canonical JSON serialization format and explicitly doesn't support many of the rarely used features. But that day is not today. -# Versioning ๐Ÿ”ข - -`axum-connect` and `axum-connect-build` versions are currently **not** kept in -lockstep. They will be once I get to beta. Right now the versions mean nothing -more than 'Alec pushed a new change'. - # License ๐Ÿงพ Axum-Connect is dual licensed (at your option) diff --git a/axum-connect-build/Cargo.toml b/axum-connect-build/Cargo.toml index 11418d0..14c2aca 100644 --- a/axum-connect-build/Cargo.toml +++ b/axum-connect-build/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "axum-connect-build" -version = "0.1.5" +version = "0.2.0" authors = ["Alec Thilenius "] edition = "2021" categories = [ @@ -17,11 +17,11 @@ repository = "https://github.com/AThilenius/axum-connect" [dependencies] anyhow = "1.0" convert_case = "0.6.0" -pbjson-build = "0.5.1" +pbjson-build = "0.6.2" proc-macro2 = "1.0.56" -prost = "0.11.9" -prost-build = "0.11.9" -prost-reflect = "0.11.4" +prost = "0.12.1" +prost-build = "0.12.1" +prost-reflect = "0.12.0" protoc-fetcher = "0.1.0" quote = "1.0.26" syn = "2.0.15" diff --git a/axum-connect-examples/Cargo.toml b/axum-connect-examples/Cargo.toml index 64ca930..5f42262 100644 --- a/axum-connect-examples/Cargo.toml +++ b/axum-connect-examples/Cargo.toml @@ -1,13 +1,13 @@ [package] name = "axum-connect-example" -version = "0.1.0" +version = "0.2.0" edition = "2021" [dependencies] async-stream = "0.3.5" axum = "0.6.9" axum-connect = { path = "../axum-connect" } -prost = "0.11.9" +prost = "0.12.1" tokio = { version = "1.0", features = ["full"] } [build-dependencies] diff --git a/axum-connect/Cargo.toml b/axum-connect/Cargo.toml index 1447ecd..44562b2 100644 --- a/axum-connect/Cargo.toml +++ b/axum-connect/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "axum-connect" -version = "0.1.7" +version = "0.2.0" authors = ["Alec Thilenius "] edition = "2021" categories = [ @@ -19,8 +19,8 @@ async-stream = "0.3.5" async-trait = "0.1.64" axum = "0.6.9" futures = "0.3.26" -pbjson = "0.5.1" -pbjson-types = "0.5.1" -prost = "0.11.9" +pbjson = "0.6.0" +pbjson-types = "0.6.0" +prost = "0.12.1" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0"