diff --git a/rust/hg-core/src/revlog/compression.rs b/rust/hg-core/src/revlog/compression.rs
--- a/rust/hg-core/src/revlog/compression.rs
+++ b/rust/hg-core/src/revlog/compression.rs
@@ -141,7 +141,7 @@ impl Default for CompressionConfig {
 
 /// A high-level trait to define compressors that should be able to compress
 /// and decompress arbitrary bytes.
-pub trait Compressor {
+pub trait Compressor: Send {
     /// Returns a new [`Vec`] with the compressed data.
     /// Should return `Ok(None)` if compression does not apply (e.g. too small)
     fn compress(
diff --git a/rust/hg-core/src/revlog/inner_revlog.rs b/rust/hg-core/src/revlog/inner_revlog.rs
--- a/rust/hg-core/src/revlog/inner_revlog.rs
+++ b/rust/hg-core/src/revlog/inner_revlog.rs
@@ -75,7 +75,7 @@ pub struct InnerRevlog {
     /// The [`Compressor`] that this revlog uses by default to compress data.
     /// This does not mean that this revlog uses this compressor for reading
     /// data, as different revisions may have different compression modes.
-    compressor: Mutex<Box<dyn Compressor + Send>>,
+    compressor: Mutex<Box<dyn Compressor>>,
 }
 
 impl InnerRevlog {