aboutsummaryrefslogtreecommitdiff
path: root/development/rust/README
blob: a5e2d1508315ee86b06db51a0efca2c484a5a85e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Rust

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.

Cargo - the Rust package manager - is included into this build.

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 parameterization 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