-
Getting Started
Documentation
Downloads
Community
Rust a safe, concurrent, practical language
Rust is a curly-brace, block-structured expression language.
It visually resembles the C language family, but differs
significantly in syntactic and semantic details.
Its design is oriented toward concerns of “programming in the
large”, that is, of creating and maintaining boundaries
– both abstract and operational – that preserve large-system
integrity, availability and concurrency.
It supports a mixture of imperative procedural, concurrent
actor, object-oriented and pure functional styles. Rust also
supports generic programming and metaprogramming, in both
static and dynamic styles.
A short summary of features
Type system | static, nominal, linear, algebraic, locally inferred |
Memory safety | no null or dangling pointers, no buffer overflows |
Concurrency | lightweight tasks with message passing, no shared memory |
Generics | type parametrization with type classes |
Exception handling | unrecoverable unwinding with task isolation |
Memory model | optional task-local GC, safe pointer types with region analysis |
Compilation model | ahead-of-time, C/C++ compatible |
License | dual MIT / Apache 2 |
A very small taste of what it looks like
fn main() {
let nums = [1, 2];
let noms = ["Tim", "Eston", "Aaron", "Ben"];
let mut odds = nums.iter().map(|&x| x * 2 - 1);
for num in odds {
do spawn {
println!("{:s} says hello from a lightweight thread!", noms[num]);
}
}
}
|