Rust is an open source, curly-brace, block-structured expression, general purpose, multi-paradigm, compiled 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.
Rust 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.
- Type – system static, nominal, linear, algebraic, locally inferred.
- Multi-paradigm: pure-functional, concurrent-actor, imperative-procedural, OO:
- First-class functions, cheap non-escaping closures.
- Algebraic data types (called enums) with pattern matching.
- Method implementations on any type.
- Traits, which share aspects of type classes and interfaces.
- Memory safety – no null or dangling pointers, no buffer overflows, no use-before-initialize or use-after-move.
- Concurrency – lightweight tasks with message passing, no shared memory.
- Generics – type parameterization with type classes.
- Exception handling – unrecoverable unwinding with task isolation: task failure / unwinding, trapping, RAII / dtors.
- Memory model – optional task-local GC, safe pointer types with region analysis.
- Compilation model – ahead-of-time, C/C++ compatible.
- Lightweight tasks (coroutines) with expanding stacks.
- Fast asynchronous, copyless message passing.
- Optional garbage collected pointers.
- All types may be explicitly allocated on the stack or interior to other types.
- Static, native compilation using LLVM.
- Direct and simple interface to C code.
- Works with existing native toolchains, GDB, Valgrind, Instruments, etc.
|New to Linux? Read our Linux for Starters series. We start right at the basics and teach you everything you need to know to get started with Linux.|
|The largest compilation of the best free and open source software in the universe. Each article is supplied with a legendary ratings chart helping you make informed decisions.|
|Hundreds of in-depth reviews offering our unbiased and expert opinion on software. We offer helpful and impartial information.|
|Alternatives to Google's Products and Services examines your options to migrate from the Google ecosystem with open source Linux alternatives.|
|Alternatives to Microsoft's Products and Services recommends open source Linux software.|
|Alternatives to Adobe Cloud looks at free and open source alternatives to products available from Adobe Cloud's subscription service.|
|Alternatives to Apple recommends free and open source alternatives to Apple's proprietary world.|
|Alternatives to Corel surveys alternatives to Corel's range of graphics processing products and other software applications.|
|Getting Started with Docker helps you master Docker, a set of platform as a service products that delivers software in packages called containers.|
|Essential Linux system tools focuses on small, indispensable utilities, useful for system administrators as well as regular users.|
|Linux utilities to maximise your productivity. Small, indispensable tools, useful for anyone running a Linux machine.|
|Home computers became commonplace in the 1980s. Emulate home computers including the Commodore 64, Amiga, Atari ST, ZX81, Amstrad CPC, and ZX Spectrum.|
|Now and Then examines how promising open source software fared over the years. It can be a bumpy ride.|
|Linux at Home looks at a range of home activities where Linux can play its part, making the most of our time at home, keeping active and engaged.|
|Linux Candy reveals the lighter side of Linux. Have some fun and escape from the daily drudgery.|
|Best Free Android Apps. We showcase free Android apps that are definitely worth downloading. There's a strict eligibility criteria for inclusion in this series.|
|These best free books accelerate your learning of every programming language. Learn a new language today!|
|These free tutorials offer the perfect tonic to our free programming books series.|
|Stars and Stripes is an occasional series looking at the impact of Linux in the USA.|