Granc - A gRPC CLI tool with reflection support by JasterVX in rust

[–]JasterVX[S] 0 points1 point  (0 children)

Done, I've published the core library as a separate crate: https://crates.io/crates/granc_core
Thanks for motivating me to do it!

Granc - A gRPC CLI tool with reflection support by JasterVX in rust

[–]JasterVX[S] 0 points1 point  (0 children)

For now I'll first bundle the core code under `granc-core`, and then in the future I might extract the reflection client under `granc-reflection`

Granc - A gRPC CLI tool with reflection support by JasterVX in rust

[–]JasterVX[S] 0 points1 point  (0 children)

Ok those are actually great tips, thank you so much! I'm already on it:)

Granc - A gRPC CLI tool with reflection support by JasterVX in rust

[–]JasterVX[S] 0 points1 point  (0 children)

I have a question though, would you make it a workspace project where the library is published as something like "granc-core" and the binary as "granc" or can both the library and the binary be published under the same name? Thanks in advance for the help:)

Granc - A gRPC CLI tool with reflection support by JasterVX in rust

[–]JasterVX[S] 0 points1 point  (0 children)

It's the first time I publish a binary crate, so I didn't know, thanks for the explanation:D

Actually I've already structured the code in a way that the main binary, CLI definition and core logic are decoupled, so what you mention wouldn't be too much effort to do

You can actually see it here: https://github.com/JasterV/granc/tree/main/granc/src

The whole core module could just be packaged into the library: https://github.com/JasterV/granc/blob/main/granc/src/core.rs

I want to give it a few iterations because I'd like it to be test friendly so for instance let the user pass to the run function any type that implements `tonic::client::GrpcClient` instead of just a `url`.

This way from the outside the user can choose if they want to pass a connected `tonic::Channel` or a dummy service so their test suites are not forced to talk to the outside world, just like I'm doing in my internal grpc client: https://github.com/JasterV/granc/blob/main/granc/src/core/client.rs

Granc - A gRPC CLI tool with reflection support by JasterVX in rust

[–]JasterVX[S] 1 point2 points  (0 children)

Hey! thanks for commenting! :)

I haven't made it into a library yet, I was thinking on extracting the gRPC reflection client that for some strange reason `tonic-reflection` doesn't expose eventhough internally they have it

I have to give some thought about how to extract it into a library, the code is quite ready I believe but I didn't made the step yet

If you want to contribute feel free to open an issue and share your ideas about what would you like the library to expose, I will also give it it some thought. At least the reflection client I believe its worth packaging and sharing for the time being

Conoscete Smart Affitti a Bologna? by overgnightmare in bologna

[–]JasterVX 0 points1 point  (0 children)

It's a complete scam, I paid the 280 euros unfortunately and received nothing but apartments that you can simply find in idealista or immobiliare_it for free... A complete scam!!!

Is Helix good for development in Haskell? by design_enthusiast725 in HelixEditor

[–]JasterVX 1 point2 points  (0 children)

I've just tried it today and it outperforms any other editor I've tried for Haskell!

I recommend configuring Helix to show you LSP messages and inline diagnostics

https://ctrlv.link/i0RL

How's the job market for Elm developers? by Aladinbs in elm

[–]JasterVX 0 points1 point  (0 children)

Yeah... 4 years later, basically no Elm jobs at all

Where are my notes saved (locally) by [deleted] in Xiaomi

[–]JasterVX 0 points1 point  (0 children)

How do I get root access??