Learn Rust at the South Pole - with almost no Internet access

Hey all,

I'm just beginning my Rust journey and need some advice. I'm moving down to Antarctica to work with the South Pole Telescope for a year, and hope to learn and play with Rust during my free time down there. I'll have almost no reliable internet and am wondering how to go about preparing to learn Rust.

What stuff do I need to install/download before I leave? Any advice would be super helpful.

A bit about me - I'm an astrophysics PhD student who works with Python daily, but don't really know other languages.

Thanks,
Aman

11 Likes

Ooo, neat. Big Dead Place.

Learning: Assuming you've installed in the standard way, rustup has probably installed the standard documentation. Try for example: rustup doc --book. (I'm pretty sure it installs them by default anyway. If not, try rustup component add rust-docs.) For other resources you may want to download ahead of time, you can look for other general recommendations in this forum. Here's a recent one aimed at where to look after you've exhausted the basics.

Playing: I haven't done this myself, so hopefully someone with hands-on experience can chime in. But since a couple years ago, Cargo has offline support. You'll definitely want to pre-fetch some popular crates and their recursive dependencies if you want to play with the ecosystem and not just the core language and library. The playground uses the 100 most popular by some metric or another, that could be a place to start. Alternatively, you could create your own registry mirror. More discussion in this StackOverflow.

10 Likes

Thanks a lot! I didn't know that I could do rustup doc --book!

Also make sure to grab rustlings - it's a exercise-and-quiz style learning tool.

1 Like

Do you perhaps know if it's possible to just wholesale download the entire cargo registry and then make cargo just use that clone?

If it's possible, then I'd recommend that too, despite the amount of disk space it'll take. Essentially it'd mean that OP would never run into a situation where some dependency they know of and need isn't available.

2 Likes

That sounds amazing! I'll try and do that - I'll be taking a bunch of hard drives with me. This is exactly what I was looking for

If you attempt to do that, you will run into rate limiting. Please get in touch beforehand.

5 Likes

Oh yeah. rustup doc is great. I often do not use internet when reading docs.

1 Like

Something else you may want to do is find some prominent Rust projects on GitHub and git clone them. That way you can browse through the source code and documentation offline and get a good understanding of what Rust looks like in the real world.

2 Likes

I think it would be great if there was a kind of "snapshot the ecosystem, including sources and docs" functionality so that all this could be done in a single step.
Granted, not too many people use this particular functionality, but it could be useful for archival purposes too.

1 Like

What would you suggest then?

In the past I wrote a program which uses the GitHub and GitLab APIs to git clone all repos you own or have starred and then grab new changes in already cloned repos using git fetch. Something like that might be useful.

2 Likes

Here's a Twitter post detailing the process to download the entire crate registry:

https://twitter.com/m_ou_se/status/1433113333968916481

5 Likes

Here are some libraries to pay attention to as far as numeric stuff is concerned:

2 Likes

This topic was automatically closed 90 days after the last reply. We invite you to open a new topic if you have further questions or comments.