deno/ext/os
David Sherret 54405bc450
feat(permissions): allow Deno.env.toObject() for partial env permission (#31267)
Allow calling `Deno.env.toObject()` or getting the entire `process.env`
when only having partial permissions.

For example, you can now do `--allow-env --deny-env=SOMETHING` and the
object will have all the env vars except `SOMETHING`

We discussed just never throwing here, but we think it would be a bad
idea because someone might get confused why their program isn't working
whereas now they get alerted about env permissions ("I set this
environment variable, but it's not working!").
2025-11-13 18:01:26 +00:00
..
ops chore: Rust 1.89.0 (#30364) 2025-08-09 11:11:48 +00:00
30_os.js refactor: add 'deno_os' crate (#27655) 2025-01-14 17:29:36 +01:00
40_signals.js refactor: add 'deno_os' crate (#27655) 2025-01-14 17:29:36 +01:00
Cargo.toml 2.5.6 (#31136) 2025-10-29 23:50:18 +00:00
lib.rs feat(permissions): allow Deno.env.toObject() for partial env permission (#31267) 2025-11-13 18:01:26 +00:00
README.md feat: implement process.cpuUsage (Deno.cpuUsage) (#27217) 2025-01-30 17:23:05 +05:30
sys_info.rs refactor: remove usages of to_string_lossy().to_string() (#30224) 2025-07-28 20:25:58 +00:00

deno_os

This crate implements OS specific APIs for Deno

loadavg

Target family Syscall Description
Linux sysinfo -
Windows - Returns DEFAULT_LOADAVG. There is no concept of loadavg on Windows
macOS, BSD getloadavg https://www.freebsd.org/cgi/man.cgi?query=getloadavg

os_release

Target family Syscall Description
Linux /proc/sys/kernel/osrelease -
Windows RtlGetVersion dwMajorVersion . dwMinorVersion . dwBuildNumber
macOS sysctl([CTL_KERN, KERN_OSRELEASE]) -

hostname

Target family Syscall Description
Unix gethostname(sysconf(_SC_HOST_NAME_MAX)) -
Windows GetHostNameW -

mem_info

Target family Syscall Description
Linux sysinfo and /proc/meminfo -
Windows sysinfoapi::GlobalMemoryStatusEx -
macOS
 sysctl([CTL_HW, HW_MEMSIZE]); 
sysctl([CTL_VM, VM_SWAPUSAGE]);
host_statistics64(mach_host_self(), HOST_VM_INFO64)
-

cpu_usage

Target family Syscall Description
Linux getrusage -
Windows processthreadsapi::GetProcessTimes -
macOS getrusage -