Open LLFourn opened 2 months ago
Yes, I do agree with both (1) and (2), there are also issues with other features such s proxy previously mentioned by tnull, refer to https://github.com/bitcoindevkit/rust-electrum-client/issues/91, which is basically mandatory and we can't use the client with --no-default-features.
Indeed, with arti-client I do need the client to receive a data stream (e.g. TcpStream, arti-client::DataStream), and was planning on such refactoring. It also requires being async, which detangling all existing features will make it easy to have an async version.
Thanks for opening the issue, I moved the #138 back to draft for now.
There is way too much feature gating logic to me.
new_proxy_ssl
, just have a single method that starts an electrum TLS connection given aTcpStream
. Of course then we have a convenience method to do the initial connection to a url string if they don't want proxies. But if they do then it's fine to have them set up the proxy connection themselves.socks5-client
rather than openssl. For TLS we can just be opinionated and use rustls.This seems like something you would want to do anyway @oleonardolima for arti?
I'll turn this into an issue that I think we should tackle first.
_Originally posted by @LLFourn in https://github.com/bitcoindevkit/rust-electrum-client/pull/138#discussion_r1757704931_