Hello everyone! I want to learn Rust and I've been thinking of using it to build Linux utilities. One app that comes to my mind is to build a wifi-menu utility with Rust. Another app could be a file transfer via LAN.
It can be done with Rust? Do I need to communicate with Linux drivers? Where do I start? What tutorials should I do?
As you can see from the post, I don't have knowledge about what can be achieved with Rust, the only think I know is that you can do low level things.
Sure! They can certainly be done. For a wifi menu, you should figure out what wifi tools you have on your computer, and figure out what kind api they expose. You might need FFI, or you might need to execute commands from your executable.
As for LAN file transfer, well it should certainly be possible. Open a tcp connection and send some bytes. IPv6 has some cool multicast things you can use to allow devices to discover each other.
Well for one the guide is good. As for starting, we'll you have to figure out what you want to build more exactly. GUI is unfortunately very difficult in Rust at this time, so if you're new, I recommend drawing characters in the terminal to make the user interface.
For writing GUIs in Rust there is a nice website that tries to accumulate all the available resources to build one: https://areweguiyet.com/
In general I would recommend to view the problem as two separate ones:
writing a GUI and
writing a tool that can control WiFi (or Ethernet) settings.
So maybe you should start with the latter.
You could try to find some existing libraries that interface with WiFi stuff on crates.io: Search results for 'wifi'
You can take a look at their source code and figure out what they are doing.
They write something on your own and later implement a GUI for your software.