diff --git a/src/rust/amadeus-next/amadeus/src/main.rs b/src/rust/amadeus-next/amadeus/src/main.rs
index f328e4d9d04c31d0d70d16d21a07d1613be9d577..e3bcc0c453ee0da51827cf3354e14d7424b21ec3 100644
--- a/src/rust/amadeus-next/amadeus/src/main.rs
+++ b/src/rust/amadeus-next/amadeus/src/main.rs
@@ -1 +1,3 @@
+#![forbid(unsafe_code)]
+
 fn main() {}
diff --git a/src/rust/amadeus-next/amalib/src/lib.rs b/src/rust/amadeus-next/amalib/src/lib.rs
index 00d2f9fe834977edcfeab277af467bcf7a3f9e43..8ee7b9eb8c3e5d9cbd6f7b9b0af47086c6f8fcde 100644
--- a/src/rust/amadeus-next/amalib/src/lib.rs
+++ b/src/rust/amadeus-next/amalib/src/lib.rs
@@ -1,3 +1,5 @@
+#![forbid(unsafe_code)]
+
 //! The base library used for lektor's clients. It is composed of elements to
 //! communicate with the lektord server and elements to store and organise the
 //! queried informations.
diff --git a/src/rust/amadeus-next/commons/src/lib.rs b/src/rust/amadeus-next/commons/src/lib.rs
index 7cd44cd06811bac7337380867fecf368915ace8f..597e4934ecb1138339bdcc420a04ad288e0ba673 100644
--- a/src/rust/amadeus-next/commons/src/lib.rs
+++ b/src/rust/amadeus-next/commons/src/lib.rs
@@ -1,3 +1,5 @@
+#![forbid(unsafe_code)]
+
 mod asserts;
 mod error;
 mod macros;
diff --git a/src/rust/amadeus-next/lkt-rs/src/main.rs b/src/rust/amadeus-next/lkt-rs/src/main.rs
index eacf33ccaa716f624e943c00681405612cbc3b6c..5ec2a228455e21780e9793f933433d580cce58d6 100644
--- a/src/rust/amadeus-next/lkt-rs/src/main.rs
+++ b/src/rust/amadeus-next/lkt-rs/src/main.rs
@@ -1,3 +1,5 @@
+#![forbid(unsafe_code)]
+
 mod args;
 mod config;
 mod parsers;
@@ -35,7 +37,7 @@ macro_rules! send {
     ($conn: expr => $query: expr ; $expect: pat_param => $action: block) => {
         match $conn.send($query).await.expect("failed to execute command") {
             $expect => $action,
-            _ => panic!("invalid response type for command"),
+            _ => unreachable!("invalid response type for command"),
         }
     };
 
@@ -96,15 +98,13 @@ async fn handle_cmd_playlist(
             send!(conn => LektorQuery::RemoveFromPlaylist(name, query); ok)
         }
         LktPlaylistCommand::List => {
-            send!(conn => LektorQuery::ListAllPlaylists
-                ; LektorResponse::PlaylistSet(playlists) => {
-                    playlists.into_iter().for_each(|plt| println!("{plt}"))
+            send!(conn => LektorQuery::ListAllPlaylists; LektorResponse::PlaylistSet(playlists) => {
+                playlists.into_iter().for_each(|plt| println!("{plt}"))
             })
         }
         LktPlaylistCommand::ListContent { name } => {
-            send!(conn => LektorQuery::ListPlaylist(name)
-                ; LektorResponse::KaraSet(karas) => {
-                    karas.into_iter().for_each(|kara| println!("{kara}"))
+            send!(conn => LektorQuery::ListPlaylist(name); LektorResponse::KaraSet(karas) => {
+                karas.into_iter().for_each(|kara| println!("{kara}"))
             })
         }
     }
diff --git a/src/rust/liblektor-rs/kurisu_api/src/lib.rs b/src/rust/liblektor-rs/kurisu_api/src/lib.rs
index a3a6d96c3f59dd67ed1c89948bc4d13c42504661..548de52353532974a3cf09c4d00e0594c0fca5a4 100644
--- a/src/rust/liblektor-rs/kurisu_api/src/lib.rs
+++ b/src/rust/liblektor-rs/kurisu_api/src/lib.rs
@@ -1 +1,3 @@
+#![forbid(unsafe_code)]
+
 pub mod v1;
diff --git a/src/rust/liblektor-rs/lektor_db/src/lib.rs b/src/rust/liblektor-rs/lektor_db/src/lib.rs
index 4043328d759f32fa6477255d1f5a49aefa29308f..785bdea0603eb0488abdda0960840643f4c5631d 100644
--- a/src/rust/liblektor-rs/lektor_db/src/lib.rs
+++ b/src/rust/liblektor-rs/lektor_db/src/lib.rs
@@ -1,3 +1,5 @@
+#![forbid(unsafe_code)]
+
 //! Database implementation in rust for lektor.
 
 pub mod connexion;
diff --git a/src/rust/liblektor-rs/lektor_repo/src/lib.rs b/src/rust/liblektor-rs/lektor_repo/src/lib.rs
index ffd59cd6b582b3f1b15af0ac38f124e457069d28..f99447c0cacc39725efb5fc4a890e3958b1f9fdb 100644
--- a/src/rust/liblektor-rs/lektor_repo/src/lib.rs
+++ b/src/rust/liblektor-rs/lektor_repo/src/lib.rs
@@ -1,3 +1,5 @@
+#![forbid(unsafe_code)]
+
 //! The crate responsible of downloading karas from kurisu.
 
 use lektor_c_compat::rs::*;