# Rust - Revolutionary programming language? It's been quite some time since Rust has been in the market. It's been making some news lately when some developers claimed it to be the most performant language than many other popular languages.
Let's go on a journey to explore Rust. This post for starters will educate you on what Rust is, what it offers & why should one use it.
Rust is a statically typed language that best sells itself with its memory safety feature (it won't allow null pointers, dangling pointers or data races). When we say memory safety it means devs don't have to manage or invest most of their time in managing the memory of their program, Rust can do that on its own.
With Rust's memory safety, it is nearly impossible to corrupt the memory by accident & the best part is you are just writing code at a high level.
Rust has a great compiler which won't let you write the incorrect code. There is no way to bypass this gatekeeper. If you want to write an efficient program & that too in Rust, you will have to deal with it somehow.
Rust does not use automated garbage collection rather it uses the Resource acquisition is initialization (RAII) idiom which simply means that the lifetime of the object is bound to the scope of the variable so when the variable goes out of scope, the destructor will release the resource.
Apart from RAII, Rust uses the borrow checker, one of the key functions of Rust to manage memory. We will need an entirely new post & some pre-requisites to understand what a borrow checker is & how it emphasises memory safety.
For a brief overview of the borrow checker consider that it's like it auto-inserts memory allocations and frees you, giving you the convenience of a garbage collector with the speed and efficiency of manual management.
Rust has a Foreign Function Interface. Using this we can call C and C++ programs from rust functions & vice versa
Rust's high performance, memory safety, and support for concurrent programming allow you to control low-level details of any system which makes it highly suitable for the operating system, DevOps or micro applications
GossipSub: PubSub Extensible Protocol GossipSub is a protocol that extends existing PubSub implementation to make PubSub more efficient. Since GossipSub is an extension of PubSub, it makes sense to know about PubSub before directly jumping on to GossipSub.
FFMPEG & SFTP are such great tools. I'm a fan of them.