diff --git a/bindings/rust/gpiosim-sys/Cargo.toml b/bindings/rust/gpiosim-sys/Cargo.toml
index c3571d2cf48e..9aa047feba82 100644
--- a/bindings/rust/gpiosim-sys/Cargo.toml
+++ b/bindings/rust/gpiosim-sys/Cargo.toml
@@ -19,5 +19,5 @@ errno = "0.2.8"
 libgpiod = { path = "../libgpiod" }
 
 [build-dependencies]
-bindgen = "0.59.1"
+bindgen = "0.63"
 cc = "1.0.46"
diff --git a/bindings/rust/libgpiod-sys/Cargo.toml b/bindings/rust/libgpiod-sys/Cargo.toml
index 479184da3f7b..3bc3525aedca 100644
--- a/bindings/rust/libgpiod-sys/Cargo.toml
+++ b/bindings/rust/libgpiod-sys/Cargo.toml
@@ -17,5 +17,5 @@ edition = "2021"
 [dependencies]
 
 [build-dependencies]
-bindgen = "0.59.1"
+bindgen = "0.63"
 cc = "1.0.46"
diff --git a/bindings/rust/libgpiod/src/event_buffer.rs b/bindings/rust/libgpiod/src/event_buffer.rs
index 5a72ddb197ac..0675ea6c5181 100644
--- a/bindings/rust/libgpiod/src/event_buffer.rs
+++ b/bindings/rust/libgpiod/src/event_buffer.rs
@@ -2,7 +2,6 @@
 // SPDX-FileCopyrightText: 2022 Linaro Ltd.
 // SPDX-FileCopyrightTest: 2022 Viresh Kumar <viresh.kumar@linaro.org>
 
-use std::os::raw::c_ulong;
 use std::ptr;
 
 use super::{
@@ -74,7 +73,7 @@ impl Buffer {
     pub fn new(capacity: usize) -> Result<Self> {
         // SAFETY: The `gpiod_edge_event_buffer` returned by libgpiod is guaranteed to live as long
         // as the `struct Buffer`.
-        let buffer = unsafe { gpiod::gpiod_edge_event_buffer_new(capacity as c_ulong) };
+        let buffer = unsafe { gpiod::gpiod_edge_event_buffer_new(capacity) };
         if buffer.is_null() {
             return Err(Error::OperationFailed(
                 OperationType::EdgeEventBufferNew,
diff --git a/bindings/rust/libgpiod/src/line_config.rs b/bindings/rust/libgpiod/src/line_config.rs
index 3848a3a68304..a2721a20e4fa 100644
--- a/bindings/rust/libgpiod/src/line_config.rs
+++ b/bindings/rust/libgpiod/src/line_config.rs
@@ -2,8 +2,6 @@
 // SPDX-FileCopyrightText: 2022 Linaro Ltd.
 // SPDX-FileCopyrightTest: 2022 Viresh Kumar <viresh.kumar@linaro.org>
 
-use std::os::raw::c_ulong;
-
 use super::{
     gpiod,
     line::{Offset, Settings, SettingsMap, Value},
@@ -65,7 +63,7 @@ impl Config {
             gpiod::gpiod_line_config_add_line_settings(
                 self.config,
                 offsets.as_ptr(),
-                offsets.len() as c_ulong,
+                offsets.len(),
                 settings.settings,
             )
         };
@@ -91,7 +89,7 @@ impl Config {
             gpiod::gpiod_line_config_set_output_values(
                 self.config,
                 mapped_values.as_ptr(),
-                values.len() as u64,
+                values.len(),
             )
         };
 
diff --git a/bindings/rust/libgpiod/src/line_request.rs b/bindings/rust/libgpiod/src/line_request.rs
index a77c95deb1e3..ebf41f240ae2 100644
--- a/bindings/rust/libgpiod/src/line_request.rs
+++ b/bindings/rust/libgpiod/src/line_request.rs
@@ -2,7 +2,7 @@
 // SPDX-FileCopyrightText: 2022 Linaro Ltd.
 // SPDX-FileCopyrightTest: 2022 Viresh Kumar <viresh.kumar@linaro.org>
 
-use std::os::{raw::c_ulong, unix::prelude::AsRawFd};
+use std::os::unix::prelude::AsRawFd;
 use std::time::Duration;
 
 use super::{
@@ -40,7 +40,7 @@ impl Request {
             gpiod::gpiod_line_request_get_requested_offsets(
                 self.request,
                 offsets.as_mut_ptr(),
-                self.num_lines() as u64,
+                self.num_lines(),
             )
         };
         offsets.shrink_to(num_offsets as usize);
@@ -70,7 +70,7 @@ impl Request {
         let ret = unsafe {
             gpiod::gpiod_line_request_get_values_subset(
                 self.request,
-                offsets.len() as c_ulong,
+                offsets.len(),
                 offsets.as_ptr(),
                 values.as_mut_ptr(),
             )
@@ -127,7 +127,7 @@ impl Request {
         let ret = unsafe {
             gpiod::gpiod_line_request_set_values_subset(
                 self.request,
-                offsets.len() as c_ulong,
+                offsets.len(),
                 offsets.as_ptr(),
                 values.as_ptr(),
             )
diff --git a/bindings/rust/libgpiod/src/request_config.rs b/bindings/rust/libgpiod/src/request_config.rs
index 939838cbed2f..2ad68efdd12a 100644
--- a/bindings/rust/libgpiod/src/request_config.rs
+++ b/bindings/rust/libgpiod/src/request_config.rs
@@ -3,7 +3,7 @@
 // SPDX-FileCopyrightTest: 2022 Viresh Kumar <viresh.kumar@linaro.org>
 
 use std::ffi::{CStr, CString};
-use std::os::raw::{c_char, c_ulong};
+use std::os::raw::c_char;
 use std::str;
 
 use super::{gpiod, Error, OperationType, Result};
@@ -75,7 +75,7 @@ impl Config {
     /// Set the size of the kernel event buffer for the request.
     pub fn set_event_buffer_size(&mut self, size: usize) -> &mut Self {
         // SAFETY: `gpiod_request_config` is guaranteed to be valid here.
-        unsafe { gpiod::gpiod_request_config_set_event_buffer_size(self.config, size as c_ulong) }
+        unsafe { gpiod::gpiod_request_config_set_event_buffer_size(self.config, size) }
 
         self
     }
