3 ms·
> Actually using Rust, not so much Would you care to elaborate? There are some pain points that we're aware of, some of which we're actively working on, but th
by estebank 3y ago
> Actually using Rust, not so much
Would you care to elaborate? There are some pain points that we're aware of, some of which we're actively working on, but there might be some you encountered that we don't know about and it would be helpful to find out about them so we can potentially address them in the future.
- toast0 3y agoHonestly, I don't think it's anything outside the usual suspects, but hopefully this brain dump is useful. 1) compiling is slowwwww, and something about my workplace environment (docker builds) means there's a lot of downloading and a lot of disk space used. cargo clean is helpful, and I blame docker more than Rust here. I am running in a VM, but I've had to increase the allocation to 150 G to run a fairly barebones Linux environment (no desktop) and not have to clean up my environment frequently. Some of my other environmental stuff is also super slow, so I'm pretty grumpy about speed in general. 1a) I've had cargo fmt eat my files when I was out of disk space. It created a new file, but the file length was 0, and my old file was gone. (I did not open a bug report) 1b) I hate how my dependency tree has about 700 items, but I still have to update h2 for a http/2 server security bug to make cargo audit happy, when AFAIK, we don't even use http/2 at all. (we do use hyper, and aws-sdk) 1c) There's about 7 different ways to get at epoll from Rust, but I don't think any of them let you set a sub-ms timeout, unless you use a timerfd (at least one of the 7 ways does do the timerfd for you, but that doesn't make it better, just easier). Why doesn't anyone make epoll_pwait2 available somehow. Although, really, this is more of a question of why didn't Linux offer a useful timeout in epoll_wait to begin with. If I were more familiar with Rust, maybe I'd be confident in just doing it myself, like I can in other languages, but it still seems scary. 2) It's pretty difficult to figure out what my system is doing from the outside. But I'm used to Erlang's introspection, and I was tempted to think that some of the features of Rust would make it Erlang-ish. Maybe I just need to use tokio_console, but it's not there by default, and I'm not sure how I would connect up to my running production system. This is probably more of a me problem or a my environment problem than a Rust problem.
- estebank 3y agoThank you, this is indeed useful.
- toast0 3y agoOh here's one more, from just now. I'm trying to figure out what how set_read_timeout on a UdpSocket works, so I'm here: https://doc.rust-lang.org/src/std/net/udp.rs.html#308-310 https://doc.rust-lang.org/src/std/net/udp.rs.html#308-310 and click get source (which is nice to have! and is usually helpful) which takes me here https://doc.rust-lang.org/src/std/net/udp.rs.html#308-310 https://doc.rust-lang.org/src/std/net/udp.rs.html#308-310 In this case, this is profoundly unhelpful. There's no way to get from this page to wherever it is I need to be; there's no way to navigate to any other file from here. I'm not really mad, I'm just disappointed --- you set me up for success with this great get source link, and then I gotta just go jump through the source on my own anyway.
- estebank 3y agoSupport for code navigation in the rust doc provided sources was implemented some time back. I think it wasn't enabled by default due to HTML bloat, it made the pages too big and slow to render on larger files. It'd be nice to revisit that and get it over the finish line. This is something I want too.