Module ctru::services

source ·
Expand description

OS services used to handle system-specific functionality.

Most of the 3DS console’s functionalities (when writing user-land homebrew) are accessible via services, which need to be initialized before accessing any particular feature.

To ensure safety while using the underlying services, ctru-rs leverages Rust’s lifetime model. After initializing the handle for a specific service (e.g. Apt) the service will be accessible as long as there is at least one handle “alive”. As such, handles should be dropped after the use of a specific service. This is particularly important for services which are necessary for functionality “outside” their associated methods, such as RomFS, which creates an accessible virtual filesystem, or Soc, which enables all network communications via sockets.

In ctru-rs some services only allow a single handle to be created at a time, to ensure a safe and controlled environment.


  • Application Manager service.
  • Applet service.
  • Camera service.
  • System Configuration service.
  • FileSystem service.
  • Graphics service.
  • GSPGPU service
  • Human Interface Device service.
  • IR (Infrared) User Service.
  • NDSP (Audio) service.
  • Process Services.
  • Read-Only Memory FileSystem service.
  • Network Socket service.
  • SSLC (TLS) service.
  • Syscall APIs
  • UDS (local networking) service.