feat: add fswatch, sysinfo, and udp demo scripts plus reorder manual sidebar links

Add three new example scripts demonstrating the fswatch, sysinfo, and udp modules with file watching, system metrics, and UDP echo server/client patterns. Reorder the manual API sidebar navigation to list modules alphabetically, removing deprecated entries like websocket, tls, net, json, regex, jinja, os, signal, subprocess, sqlite, and timer while adding argparse, dataset, fswatch, and html.
This commit is contained in:
2026-01-25 12:09:28 +00:00
parent d487109d7c
commit 819bbd5091
72 changed files with 4332 additions and 643 deletions
+65
View File
@@ -0,0 +1,65 @@
// retoor <retoor@molodetz.nl>
import "sysinfo" for SysInfo
var formatBytes = Fn.new { |bytes|
if (bytes < 1024) return "%(bytes) B"
if (bytes < 1024 * 1024) return "%(((bytes / 1024) * 10).floor / 10) KB"
if (bytes < 1024 * 1024 * 1024) return "%(((bytes / 1024 / 1024) * 10).floor / 10) MB"
return "%(((bytes / 1024 / 1024 / 1024) * 10).floor / 10) GB"
}
System.print("=== SysInfo Module Demo ===\n")
System.print("--- System Information ---")
System.print("Hostname: %(SysInfo.hostname)")
System.print("Uptime: %(SysInfo.uptime) seconds")
System.print("\n--- Memory Information ---")
var total = SysInfo.totalMemory
var free = SysInfo.freeMemory
var used = total - free
var resident = SysInfo.residentMemory
var constrained = SysInfo.constrainedMemory
System.print("Total: %(formatBytes.call(total))")
System.print("Free: %(formatBytes.call(free))")
System.print("Used: %(formatBytes.call(used))")
System.print("Process RSS: %(formatBytes.call(resident))")
if (constrained > 0) {
System.print("Constrained: %(formatBytes.call(constrained))")
}
System.print("\n--- CPU Information ---")
var cpus = SysInfo.cpuInfo
System.print("CPU Count: %(cpus.count)")
for (i in 0...cpus.count) {
var cpu = cpus[i]
System.print(" CPU %(i): %(cpu["model"]) @ %(cpu["speed"]) MHz")
}
System.print("\n--- Load Average ---")
var load = SysInfo.loadAverage
System.print("1 min: %(load[0])")
System.print("5 min: %(load[1])")
System.print("15 min: %(load[2])")
System.print("\n--- Network Interfaces ---")
var interfaces = SysInfo.networkInterfaces
for (name in interfaces.keys) {
System.print("%(name):")
for (addr in interfaces[name]) {
System.print(" %(addr["family"]): %(addr["address"])")
System.print(" Internal: %(addr["internal"])")
System.print(" Netmask: %(addr["netmask"])")
System.print(" MAC: %(addr["mac"])")
}
}
System.print("\n--- High Resolution Timer ---")
var t1 = SysInfo.hrtime
var t2 = SysInfo.hrtime
System.print("Time 1: %(t1) ns")
System.print("Time 2: %(t2) ns")
System.print("Delta: %(t2 - t1) ns")