Memory Management
Bun.allocUnsafe()
Allocate uninitialized buffer (fast):Bun.shrink()
Shrink buffer to actual size:Bun.mmap()
Memory-map a file:- Zero-copy file access
- Operating system manages memory
- Efficient for large files
Shell Utilities
Bun.which()
Find executable in PATH:Bun.shellEscape()
Escape string for shell:String Utilities
Bun.stringWidth()
Get display width of string:- Terminal formatting
- Table alignment
- Progress bars
Bun.indexOfLine()
Find line number of byte offset:- Error reporting
- Source maps
- Text editors
Timing
Bun.nanoseconds()
High-resolution timestamp:Date.now() or performance.now().
Bun.sleepSync()
Synchronous sleep:Inspection
Bun.inspect()
Format value for display:util.inspect() in Node.js but faster.
Bun.inspect.custom
Custom inspection:System Information
Bun.version
Bun version string:Bun.revision
Git commit hash:Bun.env
Environment variables:process.env for compatibility:
Bun.main
Entry point file:Bun.argv
Command-line arguments:process.argv for compatibility.
Bun.cwd()
Current working directory:process.cwd() for compatibility.
Editor Integration
Bun.openInEditor()
Open file in editor:$EDITOR environment variable:
ANSI Colors
Bun.enableANSIColors
Check if colors are enabled:- Running in a TTY
NO_COLORis not setFORCE_COLORis set
Origin
Bun.origin
Base URL for imports:Performance Measurement
High-Resolution Timing
Memory Profiling
Common Patterns
Safe Command Execution
Terminal Table Formatting
Error Location
Memory-Efficient File Processing
Best Practices
-
Prefer standard APIs when available
-
Use allocUnsafe carefully
-
Escape user input
-
Use nanoseconds for benchmarks
Platform Differences
Windows
Bun.which()searches.exe,.cmd,.batextensionsBun.shellEscape()uses Windows escaping rulesBun.mmap()uses Windows file mapping APIs
macOS/Linux
Bun.which()searches PATH without extensionsBun.shellEscape()uses shell escapingBun.mmap()uses POSIX mmap()