To make it more clear, here's an extract from reference.
-
bin: ordinary executable. -
lib: a library to be linked statically into Rust programs. -
dylib: a library to be linked dynamically into Rust programs. -
staticlib: a library to be linked statically into non-Rust programs. -
cdylib: a library to be linked dynamically into non-Rust programs.
(plus rlib as mainly internal format and proc_macro, used, well, for procedural macros)