You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "Tobias Mucke (Jira)" <ji...@apache.org> on 2022/03/02 14:43:00 UTC
[jira] [Commented] (THRIFT-5283) Ability to listen over unix socket in thrift Rust crate
[ https://issues.apache.org/jira/browse/THRIFT-5283?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17500209#comment-17500209 ]
Tobias Mucke commented on THRIFT-5283:
--------------------------------------
Hi,
I'm working on osquery rust bindings and the missing support of the thrift rust crate for Unix Domain Sockets is a blocker. I already patched a local copy of the Thrift crate to do a proof of concept for the binding library. However, when I tried to publish my crate yesterday to crates.io, cargo publish refused my crate due to the thrift dependency pointing to a local path.
I'm not a seasoned Rust developer. However, I'm willing to contribute to this issue and hope to get some help on the PR from the Thrift project.
[~ulidtko] : I'll investigate the approach you proposed. Okay?
Any other thoughts?
Thank you.
Tobias
> Ability to listen over unix socket in thrift Rust crate
> -------------------------------------------------------
>
> Key: THRIFT-5283
> URL: https://issues.apache.org/jira/browse/THRIFT-5283
> Project: Thrift
> Issue Type: New Feature
> Components: Rust - Library
> Affects Versions: 0.13.0
> Reporter: Prateek Kumar Nischal
> Priority: Major
>
> The rust crate for [thrift|https://crates.io/crates/thrift] right now has the ability to create a server [but only over a TCP socket|https://github.com/apache/thrift/blob/master/lib/rs/src/server/threaded.rs#L172].
> {code}
> pub fn listen<A: ToSocketAddrs>(&mut self, listen_address: A) -> thrift::Result<()>
> {code}
> The API requires the trait [ToSocketAddrs|https://doc.rust-lang.org/std/net/trait.ToSocketAddrs.html] to be implemented which is not possible for a Unix Domain Socket.
> Other libraries, for example, python has an option to serve over unix sockets. eg
> {code:python}
> TSocket.TServerSocket(unix_socket='/tmp/service.sock')
> {code}
> It would be really nice to be able to get a similar API in rust as well unless there is a way to do it already. Please let me know if it already exists.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)