diff --git a/Cargo.lock b/Cargo.lock
index 2a11634e..5f8204c2 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1449,7 +1449,7 @@ dependencies = [
  "regex-automata",
  "regex-cursor",
  "ropey",
- "rustix 0.38.44",
+ "rustix 1.0.2",
  "tempfile",
  "unicode-segmentation",
  "which",
@@ -1556,7 +1556,7 @@ dependencies = [
  "log",
  "once_cell",
  "parking_lot",
- "rustix 0.38.44",
+ "rustix 1.0.2",
  "serde",
  "serde_json",
  "slotmap",
diff --git a/helix-stdx/Cargo.toml b/helix-stdx/Cargo.toml
index 0ce6d249..a41dee83 100644
--- a/helix-stdx/Cargo.toml
+++ b/helix-stdx/Cargo.toml
@@ -26,7 +26,7 @@ unicode-segmentation.workspace = true
 windows-sys = { version = "0.59", features = ["Win32_Foundation", "Win32_Security", "Win32_Security_Authorization", "Win32_Storage_FileSystem", "Win32_System_Threading"] }
 
 [target.'cfg(unix)'.dependencies]
-rustix = { version = "0.38", features = ["fs"] }
+rustix = { version = "1.0", features = ["fs"] }
 
 [dev-dependencies]
 tempfile.workspace = true
diff --git a/helix-stdx/src/faccess.rs b/helix-stdx/src/faccess.rs
index e4c3daf2..80b668b1 100644
--- a/helix-stdx/src/faccess.rs
+++ b/helix-stdx/src/faccess.rs
@@ -51,8 +51,8 @@ mod imp {
     }
 
     fn chown(p: &Path, uid: Option<u32>, gid: Option<u32>) -> io::Result<()> {
-        let uid = uid.map(|n| unsafe { rustix::fs::Uid::from_raw(n) });
-        let gid = gid.map(|n| unsafe { rustix::fs::Gid::from_raw(n) });
+        let uid = uid.map(rustix::fs::Uid::from_raw);
+        let gid = gid.map(rustix::fs::Gid::from_raw);
         rustix::fs::chown(p, uid, gid)?;
         Ok(())
     }
diff --git a/helix-view/Cargo.toml b/helix-view/Cargo.toml
index 34ceeb91..ab5dcd07 100644
--- a/helix-view/Cargo.toml
+++ b/helix-view/Cargo.toml
@@ -57,7 +57,7 @@ clipboard-win = { version = "5.4", features = ["std"] }
 
 [target.'cfg(unix)'.dependencies]
 libc = "0.2"
-rustix = { version = "0.38", features = ["fs"] }
+rustix = { version = "1.0", features = ["fs"] }
 
 [dev-dependencies]
 helix-tui = { path = "../helix-tui" }