https://github.com/privatenumber/compare-bun-node
Comparison of Bun's API against Node.js's
https://github.com/privatenumber/compare-bun-node
api bun bun-api is-bun-ready node
Last synced: 12 months ago
JSON representation
Comparison of Bun's API against Node.js's
- Host: GitHub
- URL: https://github.com/privatenumber/compare-bun-node
- Owner: privatenumber
- Created: 2023-04-03T13:41:07.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2024-04-29T00:12:36.000Z (about 2 years ago)
- Last Synced: 2024-05-04T00:17:52.316Z (about 2 years ago)
- Topics: api, bun, bun-api, is-bun-ready, node
- Language: JavaScript
- Homepage:
- Size: 2.09 MB
- Stars: 55
- Watchers: 3
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# [Bun](https://bun.sh) & [Node.js](https://nodejs.org) API comparison
#### Why?
Have you wondered how Bun's `import 'fs'` differs from Node's?
This repository provides a comparative overview of the [Bun](https://bun.sh) and [Node.js](https://nodejs.org) runtime API.
Scrolling down, you should be able to see what's available in Bun, what's not, and how they differ.
The goal of this comparison is to help you determine if Bun is ready for adoption.
#### Self-maintaining repo
The comparison is [automatically performed every week using GitHub Actions](/.github/workflows/compare.yml), with the latest _Bun Canary_ and _Node.js LTS_.
For more details, refer to the Actions tab.
#### Contribute to Bun!
Bun is a rapidly maturing project and offers excellent opportunities for contributions. If you would like to help improve any aspect of Bun, please visit the [Bun repository](https://github.com/oven-sh/bun).
_Last updated on Mar 10, 2025 with Bun 1.2.5 Node.js v22.14.0._
## [Node.js APIs](https://nodejs.org/api/) compared
_http_agent
Node.jsBun
```js
[Object: null prototype] {
Agent: ƒ Agent(length: 1) {
defaultMaxSockets: Infinity
},
default: {
Agent: [Circular: *2],
globalAgent: Agent {
_events: [Object: null prototype] {
free: ƒ (length: 2) {},
newListener: ƒ maybeEnableKeylog(length: 1) {}
},
_eventsCount: 2,
_maxListeners: undefined,
defaultPort: 80,
protocol: "http:",
options: [Object: null prototype] {
keepAlive: true,
scheduling: "lifo",
timeout: 5000,
noDelay: true,
path: null
},
requests: [Object: null prototype] {},
sockets: [Object: null prototype] {},
freeSockets: [Object: null prototype] {},
keepAliveMsecs: 1000,
keepAlive: true,
maxSockets: Infinity,
maxFreeSockets: 256,
scheduling: "lifo",
maxTotalSockets: Infinity,
totalSocketCount: 0,
Symbol(shapeMode): false,
Symbol(kCapture): false
}
},
globalAgent: [Circular: *4]
}
```
```js
{
Agent: ƒ Agent(length: 0) {},
ClientRequest: class ClientRequest extends OutgoingMessage {},
CloseEvent: ƒ CloseEvent(length: 1) {},
IncomingMessage: ƒ IncomingMessage(length: 2) {
prototype: IncomingMessage {
constructor: [Circular: *5],
_construct: ƒ _construct(length: 1) {},
_read: ƒ _read(length: 1) {},
_destroy: ƒ _destroy(length: 2) {},
[get/set] aborted: undefined,
[get/set] connection: Socket {
_events: {
close: undefined,
error: undefined,
prefinish: undefined,
finish: undefined,
drain: undefined,
data: undefined,
end: undefined,
readable: undefined
},
_readableState: {
highWaterMark: 65536,
buffer: [],
bufferIndex: 0,
length: 0,
pipes: [],
awaitDrainWriters: null,
Symbol(kState): 1052940
},
_writableState: {
highWaterMark: 65536,
length: 0,
corked: 0,
onwrite: ƒ bound onwrite(length: 1) {},
writelen: 0,
bufferedIndex: 0,
pendingcb: 0,
Symbol(kState): 17580812,
Symbol(kBufferedValue): null
},
allowHalfOpen: true,
_maxListeners: undefined,
bytesRead: 0,
bytesWritten: 0,
connecting: false,
timeout: 0,
isServer: false,
Symbol(kCapture): false,
Symbol(::bunternal::): undefined
},
statusCode: [Error accessing: undefined is not an object (evaluating 'reqSymbol')],
statusMessage: [Error accessing: undefined is not an object (evaluating 'STATUS_CODES')],
[get/set] httpVersion: "1.1",
[get/set] httpVersionMajor: 1,
[get/set] httpVersionMinor: 1,
[get/set] rawTrailers: [],
[get/set] trailers: [Object: null prototype] {},
setTimeout: ƒ setTimeout(length: 2) {},
[get/set] socket: [Circular: *10]
}
},
METHODS: [
"ACL",
"BIND",
"CHECKOUT",
"CONNECT",
"COPY",
"DELETE",
"GET",
"HEAD",
"LINK",
"LOCK",
"M-SEARCH",
"MERGE",
"MKACTIVITY",
"MKCALENDAR",
"MKCOL",
"MOVE",
"NOTIFY",
"OPTIONS",
"PATCH",
"POST",
"PROPFIND",
"PROPPATCH",
"PURGE",
"PUT",
"REBIND",
"REPORT",
"SEARCH",
"SOURCE",
"SUBSCRIBE",
"TRACE",
"UNBIND",
"UNLINK",
"UNLOCK",
"UNSUBSCRIBE"
],
MessageEvent: ƒ MessageEvent(length: 1) {},
OutgoingMessage: ƒ OutgoingMessage(length: 1) {
prototype: OutgoingMessage {
constructor: [Circular: *22],
_implicitHeader: ƒ (length: 0) {},
appendHeader: ƒ (length: 2) {},
flushHeaders: ƒ (length: 0) {},
getHeader: ƒ (length: 1) {},
getHeaders: ƒ (length: 0) {},
getHeaderNames: ƒ (length: 0) {},
removeHeader: ƒ (length: 1) {},
setHeader: ƒ (length: 2) {},
hasHeader: ƒ (length: 1) {},
addTrailers: ƒ (length: 1) {},
setTimeout: ƒ (length: 2) {}
}
},
STATUS_CODES: {
100: "Continue",
101: "Switching Protocols",
102: "Processing",
103: "Early Hints",
200: "OK",
201: "Created",
202: "Accepted",
203: "Non-Authoritative Information",
204: "No Content",
205: "Reset Content",
206: "Partial Content",
207: "Multi-Status",
208: "Already Reported",
226: "IM Used",
300: "Multiple Choices",
301: "Moved Permanently",
302: "Found",
303: "See Other",
304: "Not Modified",
305: "Use Proxy",
307: "Temporary Redirect",
308: "Permanent Redirect",
400: "Bad Request",
401: "Unauthorized",
402: "Payment Required",
403: "Forbidden",
404: "Not Found",
405: "Method Not Allowed",
406: "Not Acceptable",
407: "Proxy Authentication Required",
408: "Request Timeout",
409: "Conflict",
410: "Gone",
411: "Length Required",
412: "Precondition Failed",
413: "Payload Too Large",
414: "URI Too Long",
415: "Unsupported Media Type",
416: "Range Not Satisfiable",
417: "Expectation Failed",
418: "I'm a Teapot",
421: "Misdirected Request",
422: "Unprocessable Entity",
423: "Locked",
424: "Failed Dependency",
425: "Too Early",
426: "Upgrade Required",
428: "Precondition Required",
429: "Too Many Requests",
431: "Request Header Fields Too Large",
451: "Unavailable For Legal Reasons",
500: "Internal Server Error",
501: "Not Implemented",
502: "Bad Gateway",
503: "Service Unavailable",
504: "Gateway Timeout",
505: "HTTP Version Not Supported",
506: "Variant Also Negotiates",
507: "Insufficient Storage",
508: "Loop Detected",
509: "Bandwidth Limit Exceeded",
510: "Not Extended",
511: "Network Authentication Required"
},
Server: ƒ Server(length: 2) {
prototype: Server {
ref: ƒ ref(length: 0) {},
unref: ƒ unref(length: 0) {},
closeAllConnections: ƒ closeAllConnections(length: 0) {},
closeIdleConnections: ƒ closeIdleConnections(length: 0) {},
close: ƒ close(length: 1) {},
address: ƒ address(length: 0) {},
listen: ƒ listen(length: 0) {},
setTimeout: ƒ setTimeout(length: 2) {},
constructor: [Circular: *36],
Symbol(Symbol.asyncDispose): ƒ [Symbol.asyncDispose](length: 0) {},
Symbol(kRealListen): ƒ [kRealListen](length: 6) {}
}
},
ServerResponse: ƒ ServerResponse(length: 2) {
prototype: ServerResponse {
constructor: [Circular: *48],
_implicitHeader: ƒ (length: 0) {},
_write: ƒ (length: 3) {},
_writev: ƒ (length: 2) {},
_final: ƒ (length: 1) {},
writeProcessing: ƒ (length: 0) {},
addTrailers: ƒ (length: 1) {},
assignSocket: ƒ (length: 1) {},
detachSocket: ƒ (length: 1) {},
writeContinue: ƒ (length: 1) {},
setTimeout: ƒ (length: 2) {},
appendHeader: ƒ (length: 2) {},
flushHeaders: ƒ (length: 0) {},
getHeader: ƒ (length: 1) {},
getHeaders: ƒ (length: 0) {},
getHeaderNames: ƒ (length: 0) {},
removeHeader: ƒ (length: 1) {},
setHeader: ƒ (length: 2) {},
hasHeader: ƒ (length: 1) {},
writeHead: ƒ (length: 3) {}
}
},
WebSocket: ƒ WebSocket(length: 1) {
CONNECTING: 0,
OPEN: 1,
CLOSING: 2,
CLOSED: 3
},
createServer: ƒ createServer(length: 2) {},
default: {
Agent: [Circular: *2],
Server: [Circular: *36],
METHODS: [Circular: *20],
STATUS_CODES: [Circular: *35],
createServer: [Circular: *70],
ServerResponse: [Circular: *48],
IncomingMessage: [Circular: *5],
request: ƒ request(length: 3) {},
get: ƒ get(length: 3) {},
[get/set] maxHeaderSize: 16384,
validateHeaderName: ƒ validateHeaderName(length: 2) {},
validateHeaderValue: ƒ validateHeaderValue(length: 2) {},
setMaxIdleHTTPParsers: ƒ setMaxIdleHTTPParsers(length: 1) {},
globalAgent: Agent {
_events: [Object: null prototype] {},
_eventsCount: 0,
_maxListeners: undefined,
defaultPort: 80,
protocol: "http:",
options: {
path: null,
noDelay: true
},
requests: [Object: null prototype] {},
sockets: [Object: null prototype] {},
freeSockets: [Object: null prototype] {},
keepAliveMsecs: 1000,
keepAlive: false,
maxSockets: Infinity,
maxFreeSockets: 256,
scheduling: "lifo",
maxTotalSockets: undefined,
totalSocketCount: 0,
Symbol(kCapture): false
},
ClientRequest: [Circular: *3],
OutgoingMessage: [Circular: *22],
WebSocket: [Circular: *69],
CloseEvent: [Circular: *4],
MessageEvent: [Circular: *21]
},
get: [Circular: *73],
globalAgent: [Circular: *77],
maxHeaderSize: 16384,
request: [Circular: *72],
setMaxIdleHTTPParsers: [Circular: *76],
validateHeaderName: [Circular: *74],
validateHeaderValue: [Circular: *75]
}
```
_http_client
Node.jsBun
```js
[Object: null prototype] {
ClientRequest: ƒ ClientRequest(length: 3) {},
default: {
ClientRequest: [Circular: *2]
}
}
```
```js
{
Agent: ƒ Agent(length: 0) {},
ClientRequest: class ClientRequest extends OutgoingMessage {},
CloseEvent: ƒ CloseEvent(length: 1) {},
IncomingMessage: ƒ IncomingMessage(length: 2) {
prototype: IncomingMessage {
constructor: [Circular: *5],
_construct: ƒ _construct(length: 1) {},
_read: ƒ _read(length: 1) {},
_destroy: ƒ _destroy(length: 2) {},
[get/set] aborted: undefined,
[get/set] connection: Socket {
_events: {
close: undefined,
error: undefined,
prefinish: undefined,
finish: undefined,
drain: undefined,
data: undefined,
end: undefined,
readable: undefined
},
_readableState: {
highWaterMark: 65536,
buffer: [],
bufferIndex: 0,
length: 0,
pipes: [],
awaitDrainWriters: null,
Symbol(kState): 1052940
},
_writableState: {
highWaterMark: 65536,
length: 0,
corked: 0,
onwrite: ƒ bound onwrite(length: 1) {},
writelen: 0,
bufferedIndex: 0,
pendingcb: 0,
Symbol(kState): 17580812,
Symbol(kBufferedValue): null
},
allowHalfOpen: true,
_maxListeners: undefined,
bytesRead: 0,
bytesWritten: 0,
connecting: false,
timeout: 0,
isServer: false,
Symbol(kCapture): false,
Symbol(::bunternal::): undefined
},
statusCode: [Error accessing: undefined is not an object (evaluating 'reqSymbol')],
statusMessage: [Error accessing: undefined is not an object (evaluating 'STATUS_CODES')],
[get/set] httpVersion: "1.1",
[get/set] httpVersionMajor: 1,
[get/set] httpVersionMinor: 1,
[get/set] rawTrailers: [],
[get/set] trailers: [Object: null prototype] {},
setTimeout: ƒ setTimeout(length: 2) {},
[get/set] socket: [Circular: *10]
}
},
METHODS: [
"ACL",
"BIND",
"CHECKOUT",
"CONNECT",
"COPY",
"DELETE",
"GET",
"HEAD",
"LINK",
"LOCK",
"M-SEARCH",
"MERGE",
"MKACTIVITY",
"MKCALENDAR",
"MKCOL",
"MOVE",
"NOTIFY",
"OPTIONS",
"PATCH",
"POST",
"PROPFIND",
"PROPPATCH",
"PURGE",
"PUT",
"REBIND",
"REPORT",
"SEARCH",
"SOURCE",
"SUBSCRIBE",
"TRACE",
"UNBIND",
"UNLINK",
"UNLOCK",
"UNSUBSCRIBE"
],
MessageEvent: ƒ MessageEvent(length: 1) {},
OutgoingMessage: ƒ OutgoingMessage(length: 1) {
prototype: OutgoingMessage {
constructor: [Circular: *22],
_implicitHeader: ƒ (length: 0) {},
appendHeader: ƒ (length: 2) {},
flushHeaders: ƒ (length: 0) {},
getHeader: ƒ (length: 1) {},
getHeaders: ƒ (length: 0) {},
getHeaderNames: ƒ (length: 0) {},
removeHeader: ƒ (length: 1) {},
setHeader: ƒ (length: 2) {},
hasHeader: ƒ (length: 1) {},
addTrailers: ƒ (length: 1) {},
setTimeout: ƒ (length: 2) {}
}
},
STATUS_CODES: {
100: "Continue",
101: "Switching Protocols",
102: "Processing",
103: "Early Hints",
200: "OK",
201: "Created",
202: "Accepted",
203: "Non-Authoritative Information",
204: "No Content",
205: "Reset Content",
206: "Partial Content",
207: "Multi-Status",
208: "Already Reported",
226: "IM Used",
300: "Multiple Choices",
301: "Moved Permanently",
302: "Found",
303: "See Other",
304: "Not Modified",
305: "Use Proxy",
307: "Temporary Redirect",
308: "Permanent Redirect",
400: "Bad Request",
401: "Unauthorized",
402: "Payment Required",
403: "Forbidden",
404: "Not Found",
405: "Method Not Allowed",
406: "Not Acceptable",
407: "Proxy Authentication Required",
408: "Request Timeout",
409: "Conflict",
410: "Gone",
411: "Length Required",
412: "Precondition Failed",
413: "Payload Too Large",
414: "URI Too Long",
415: "Unsupported Media Type",
416: "Range Not Satisfiable",
417: "Expectation Failed",
418: "I'm a Teapot",
421: "Misdirected Request",
422: "Unprocessable Entity",
423: "Locked",
424: "Failed Dependency",
425: "Too Early",
426: "Upgrade Required",
428: "Precondition Required",
429: "Too Many Requests",
431: "Request Header Fields Too Large",
451: "Unavailable For Legal Reasons",
500: "Internal Server Error",
501: "Not Implemented",
502: "Bad Gateway",
503: "Service Unavailable",
504: "Gateway Timeout",
505: "HTTP Version Not Supported",
506: "Variant Also Negotiates",
507: "Insufficient Storage",
508: "Loop Detected",
509: "Bandwidth Limit Exceeded",
510: "Not Extended",
511: "Network Authentication Required"
},
Server: ƒ Server(length: 2) {
prototype: Server {
ref: ƒ ref(length: 0) {},
unref: ƒ unref(length: 0) {},
closeAllConnections: ƒ closeAllConnections(length: 0) {},
closeIdleConnections: ƒ closeIdleConnections(length: 0) {},
close: ƒ close(length: 1) {},
address: ƒ address(length: 0) {},
listen: ƒ listen(length: 0) {},
setTimeout: ƒ setTimeout(length: 2) {},
constructor: [Circular: *36],
Symbol(Symbol.asyncDispose): ƒ [Symbol.asyncDispose](length: 0) {},
Symbol(kRealListen): ƒ [kRealListen](length: 6) {}
}
},
ServerResponse: ƒ ServerResponse(length: 2) {
prototype: ServerResponse {
constructor: [Circular: *48],
_implicitHeader: ƒ (length: 0) {},
_write: ƒ (length: 3) {},
_writev: ƒ (length: 2) {},
_final: ƒ (length: 1) {},
writeProcessing: ƒ (length: 0) {},
addTrailers: ƒ (length: 1) {},
assignSocket: ƒ (length: 1) {},
detachSocket: ƒ (length: 1) {},
writeContinue: ƒ (length: 1) {},
setTimeout: ƒ (length: 2) {},
appendHeader: ƒ (length: 2) {},
flushHeaders: ƒ (length: 0) {},
getHeader: ƒ (length: 1) {},
getHeaders: ƒ (length: 0) {},
getHeaderNames: ƒ (length: 0) {},
removeHeader: ƒ (length: 1) {},
setHeader: ƒ (length: 2) {},
hasHeader: ƒ (length: 1) {},
writeHead: ƒ (length: 3) {}
}
},
WebSocket: ƒ WebSocket(length: 1) {
CONNECTING: 0,
OPEN: 1,
CLOSING: 2,
CLOSED: 3
},
createServer: ƒ createServer(length: 2) {},
default: {
Agent: [Circular: *2],
Server: [Circular: *36],
METHODS: [Circular: *20],
STATUS_CODES: [Circular: *35],
createServer: [Circular: *70],
ServerResponse: [Circular: *48],
IncomingMessage: [Circular: *5],
request: ƒ request(length: 3) {},
get: ƒ get(length: 3) {},
[get/set] maxHeaderSize: 16384,
validateHeaderName: ƒ validateHeaderName(length: 2) {},
validateHeaderValue: ƒ validateHeaderValue(length: 2) {},
setMaxIdleHTTPParsers: ƒ setMaxIdleHTTPParsers(length: 1) {},
globalAgent: Agent {
_events: [Object: null prototype] {},
_eventsCount: 0,
_maxListeners: undefined,
defaultPort: 80,
protocol: "http:",
options: {
path: null,
noDelay: true
},
requests: [Object: null prototype] {},
sockets: [Object: null prototype] {},
freeSockets: [Object: null prototype] {},
keepAliveMsecs: 1000,
keepAlive: false,
maxSockets: Infinity,
maxFreeSockets: 256,
scheduling: "lifo",
maxTotalSockets: undefined,
totalSocketCount: 0,
Symbol(kCapture): false
},
ClientRequest: [Circular: *3],
OutgoingMessage: [Circular: *22],
WebSocket: [Circular: *69],
CloseEvent: [Circular: *4],
MessageEvent: [Circular: *21]
},
get: [Circular: *73],
globalAgent: [Circular: *77],
maxHeaderSize: 16384,
request: [Circular: *72],
setMaxIdleHTTPParsers: [Circular: *76],
validateHeaderName: [Circular: *74],
validateHeaderValue: [Circular: *75]
}
```
_http_common
Node.jsBun
```js
[Object: null prototype] {
CRLF: "\r\n",
HTTPParser: ƒ HTTPParser(length: 0) {
REQUEST: 1,
RESPONSE: 2,
kOnMessageBegin: 0,
kOnHeaders: 1,
kOnHeadersComplete: 2,
kOnBody: 3,
kOnMessageComplete: 4,
kOnExecute: 5,
kOnTimeout: 6,
kLenientNone: 0,
kLenientHeaders: 1,
kLenientChunkedLength: 2,
kLenientKeepAlive: 4,
kLenientTransferEncoding: 8,
kLenientVersion: 16,
kLenientDataAfterClose: 32,
kLenientOptionalLFAfterCR: 64,
kLenientOptionalCRLFAfterChunk: 128,
kLenientOptionalCRBeforeLF: 256,
kLenientSpacesAfterChunkSize: 512,
kLenientAll: 1023
},
_checkInvalidHeaderChar: ƒ checkInvalidHeaderChar(length: 1) {},
_checkIsHttpToken: ƒ checkIsHttpToken(length: 1) {},
chunkExpression: /(?:^|\W)chunked(?:$|\W)/i,
continueExpression: /(?:^|\W)100-continue(?:$|\W)/i,
default: {
_checkInvalidHeaderChar: [Circular: *3],
_checkIsHttpToken: [Circular: *4],
chunkExpression: [Circular: *5],
continueExpression: [Circular: *6],
CRLF: "\r\n",
freeParser: ƒ freeParser(length: 3) {},
methods: [
"DELETE",
"GET",
"HEAD",
"POST",
"PUT",
"CONNECT",
"OPTIONS",
"TRACE",
"COPY",
"LOCK",
"MKCOL",
"MOVE",
"PROPFIND",
"PROPPATCH",
"SEARCH",
"UNLOCK",
"BIND",
"REBIND",
"UNBIND",
"ACL",
"REPORT",
"MKACTIVITY",
"CHECKOUT",
"MERGE",
"M-SEARCH",
"NOTIFY",
"SUBSCRIBE",
"UNSUBSCRIBE",
"PATCH",
"PURGE",
"MKCALENDAR",
"LINK",
"UNLINK",
"SOURCE",
"QUERY"
],
parsers: FreeList {
name: "parsers",
ctor: ƒ parsersCb(length: 0) {},
max: 1000,
list: []
},
kIncomingMessage: Symbol(IncomingMessage),
HTTPParser: [Circular: *2],
isLenient: ƒ isLenient(length: 0) {},
prepareError: ƒ prepareError(length: 3) {}
},
freeParser: [Circular: *8],
isLenient: [Circular: *13],
kIncomingMessage: Symbol(IncomingMessage),
methods: [Circular: *9],
parsers: [Circular: *10],
prepareError: [Circular: *14]
}
```
```js
{
Agent: ƒ Agent(length: 0) {},
ClientRequest: class ClientRequest extends OutgoingMessage {},
CloseEvent: ƒ CloseEvent(length: 1) {},
IncomingMessage: ƒ IncomingMessage(length: 2) {
prototype: IncomingMessage {
constructor: [Circular: *5],
_construct: ƒ _construct(length: 1) {},
_read: ƒ _read(length: 1) {},
_destroy: ƒ _destroy(length: 2) {},
[get/set] aborted: undefined,
[get/set] connection: Socket {
_events: {
close: undefined,
error: undefined,
prefinish: undefined,
finish: undefined,
drain: undefined,
data: undefined,
end: undefined,
readable: undefined
},
_readableState: {
highWaterMark: 65536,
buffer: [],
bufferIndex: 0,
length: 0,
pipes: [],
awaitDrainWriters: null,
Symbol(kState): 1052940
},
_writableState: {
highWaterMark: 65536,
length: 0,
corked: 0,
onwrite: ƒ bound onwrite(length: 1) {},
writelen: 0,
bufferedIndex: 0,
pendingcb: 0,
Symbol(kState): 17580812,
Symbol(kBufferedValue): null
},
allowHalfOpen: true,
_maxListeners: undefined,
bytesRead: 0,
bytesWritten: 0,
connecting: false,
timeout: 0,
isServer: false,
Symbol(kCapture): false,
Symbol(::bunternal::): undefined
},
statusCode: [Error accessing: undefined is not an object (evaluating 'reqSymbol')],
statusMessage: [Error accessing: undefined is not an object (evaluating 'STATUS_CODES')],
[get/set] httpVersion: "1.1",
[get/set] httpVersionMajor: 1,
[get/set] httpVersionMinor: 1,
[get/set] rawTrailers: [],
[get/set] trailers: [Object: null prototype] {},
setTimeout: ƒ setTimeout(length: 2) {},
[get/set] socket: [Circular: *10]
}
},
METHODS: [
"ACL",
"BIND",
"CHECKOUT",
"CONNECT",
"COPY",
"DELETE",
"GET",
"HEAD",
"LINK",
"LOCK",
"M-SEARCH",
"MERGE",
"MKACTIVITY",
"MKCALENDAR",
"MKCOL",
"MOVE",
"NOTIFY",
"OPTIONS",
"PATCH",
"POST",
"PROPFIND",
"PROPPATCH",
"PURGE",
"PUT",
"REBIND",
"REPORT",
"SEARCH",
"SOURCE",
"SUBSCRIBE",
"TRACE",
"UNBIND",
"UNLINK",
"UNLOCK",
"UNSUBSCRIBE"
],
MessageEvent: ƒ MessageEvent(length: 1) {},
OutgoingMessage: ƒ OutgoingMessage(length: 1) {
prototype: OutgoingMessage {
constructor: [Circular: *22],
_implicitHeader: ƒ (length: 0) {},
appendHeader: ƒ (length: 2) {},
flushHeaders: ƒ (length: 0) {},
getHeader: ƒ (length: 1) {},
getHeaders: ƒ (length: 0) {},
getHeaderNames: ƒ (length: 0) {},
removeHeader: ƒ (length: 1) {},
setHeader: ƒ (length: 2) {},
hasHeader: ƒ (length: 1) {},
addTrailers: ƒ (length: 1) {},
setTimeout: ƒ (length: 2) {}
}
},
STATUS_CODES: {
100: "Continue",
101: "Switching Protocols",
102: "Processing",
103: "Early Hints",
200: "OK",
201: "Created",
202: "Accepted",
203: "Non-Authoritative Information",
204: "No Content",
205: "Reset Content",
206: "Partial Content",
207: "Multi-Status",
208: "Already Reported",
226: "IM Used",
300: "Multiple Choices",
301: "Moved Permanently",
302: "Found",
303: "See Other",
304: "Not Modified",
305: "Use Proxy",
307: "Temporary Redirect",
308: "Permanent Redirect",
400: "Bad Request",
401: "Unauthorized",
402: "Payment Required",
403: "Forbidden",
404: "Not Found",
405: "Method Not Allowed",
406: "Not Acceptable",
407: "Proxy Authentication Required",
408: "Request Timeout",
409: "Conflict",
410: "Gone",
411: "Length Required",
412: "Precondition Failed",
413: "Payload Too Large",
414: "URI Too Long",
415: "Unsupported Media Type",
416: "Range Not Satisfiable",
417: "Expectation Failed",
418: "I'm a Teapot",
421: "Misdirected Request",
422: "Unprocessable Entity",
423: "Locked",
424: "Failed Dependency",
425: "Too Early",
426: "Upgrade Required",
428: "Precondition Required",
429: "Too Many Requests",
431: "Request Header Fields Too Large",
451: "Unavailable For Legal Reasons",
500: "Internal Server Error",
501: "Not Implemented",
502: "Bad Gateway",
503: "Service Unavailable",
504: "Gateway Timeout",
505: "HTTP Version Not Supported",
506: "Variant Also Negotiates",
507: "Insufficient Storage",
508: "Loop Detected",
509: "Bandwidth Limit Exceeded",
510: "Not Extended",
511: "Network Authentication Required"
},
Server: ƒ Server(length: 2) {
prototype: Server {
ref: ƒ ref(length: 0) {},
unref: ƒ unref(length: 0) {},
closeAllConnections: ƒ closeAllConnections(length: 0) {},
closeIdleConnections: ƒ closeIdleConnections(length: 0) {},
close: ƒ close(length: 1) {},
address: ƒ address(length: 0) {},
listen: ƒ listen(length: 0) {},
setTimeout: ƒ setTimeout(length: 2) {},
constructor: [Circular: *36],
Symbol(Symbol.asyncDispose): ƒ [Symbol.asyncDispose](length: 0) {},
Symbol(kRealListen): ƒ [kRealListen](length: 6) {}
}
},
ServerResponse: ƒ ServerResponse(length: 2) {
prototype: ServerResponse {
constructor: [Circular: *48],
_implicitHeader: ƒ (length: 0) {},
_write: ƒ (length: 3) {},
_writev: ƒ (length: 2) {},
_final: ƒ (length: 1) {},
writeProcessing: ƒ (length: 0) {},
addTrailers: ƒ (length: 1) {},
assignSocket: ƒ (length: 1) {},
detachSocket: ƒ (length: 1) {},
writeContinue: ƒ (length: 1) {},
setTimeout: ƒ (length: 2) {},
appendHeader: ƒ (length: 2) {},
flushHeaders: ƒ (length: 0) {},
getHeader: ƒ (length: 1) {},
getHeaders: ƒ (length: 0) {},
getHeaderNames: ƒ (length: 0) {},
removeHeader: ƒ (length: 1) {},
setHeader: ƒ (length: 2) {},
hasHeader: ƒ (length: 1) {},
writeHead: ƒ (length: 3) {}
}
},
WebSocket: ƒ WebSocket(length: 1) {
CONNECTING: 0,
OPEN: 1,
CLOSING: 2,
CLOSED: 3
},
createServer: ƒ createServer(length: 2) {},
default: {
Agent: [Circular: *2],
Server: [Circular: *36],
METHODS: [Circular: *20],
STATUS_CODES: [Circular: *35],
createServer: [Circular: *70],
ServerResponse: [Circular: *48],
IncomingMessage: [Circular: *5],
request: ƒ request(length: 3) {},
get: ƒ get(length: 3) {},
[get/set] maxHeaderSize: 16384,
validateHeaderName: ƒ validateHeaderName(length: 2) {},
validateHeaderValue: ƒ validateHeaderValue(length: 2) {},
setMaxIdleHTTPParsers: ƒ setMaxIdleHTTPParsers(length: 1) {},
globalAgent: Agent {
_events: [Object: null prototype] {},
_eventsCount: 0,
_maxListeners: undefined,
defaultPort: 80,
protocol: "http:",
options: {
path: null,
noDelay: true
},
requests: [Object: null prototype] {},
sockets: [Object: null prototype] {},
freeSockets: [Object: null prototype] {},
keepAliveMsecs: 1000,
keepAlive: false,
maxSockets: Infinity,
maxFreeSockets: 256,
scheduling: "lifo",
maxTotalSockets: undefined,
totalSocketCount: 0,
Symbol(kCapture): false
},
ClientRequest: [Circular: *3],
OutgoingMessage: [Circular: *22],
WebSocket: [Circular: *69],
CloseEvent: [Circular: *4],
MessageEvent: [Circular: *21]
},
get: [Circular: *73],
globalAgent: [Circular: *77],
maxHeaderSize: 16384,
request: [Circular: *72],
setMaxIdleHTTPParsers: [Circular: *76],
validateHeaderName: [Circular: *74],
validateHeaderValue: [Circular: *75]
}
```
_http_incoming
Node.jsBun
```js
[Object: null prototype] {
IncomingMessage: ƒ IncomingMessage(length: 1) {},
default: {
IncomingMessage: [Circular: *2],
readStart: ƒ readStart(length: 1) {},
readStop: ƒ readStop(length: 1) {}
},
readStart: [Circular: *4],
readStop: [Circular: *5]
}
```
```js
{
Agent: ƒ Agent(length: 0) {},
ClientRequest: class ClientRequest extends OutgoingMessage {},
CloseEvent: ƒ CloseEvent(length: 1) {},
IncomingMessage: ƒ IncomingMessage(length: 2) {
prototype: IncomingMessage {
constructor: [Circular: *5],
_construct: ƒ _construct(length: 1) {},
_read: ƒ _read(length: 1) {},
_destroy: ƒ _destroy(length: 2) {},
[get/set] aborted: undefined,
[get/set] connection: Socket {
_events: {
close: undefined,
error: undefined,
prefinish: undefined,
finish: undefined,
drain: undefined,
data: undefined,
end: undefined,
readable: undefined
},
_readableState: {
highWaterMark: 65536,
buffer: [],
bufferIndex: 0,
length: 0,
pipes: [],
awaitDrainWriters: null,
Symbol(kState): 1052940
},
_writableState: {
highWaterMark: 65536,
length: 0,
corked: 0,
onwrite: ƒ bound onwrite(length: 1) {},
writelen: 0,
bufferedIndex: 0,
pendingcb: 0,
Symbol(kState): 17580812,
Symbol(kBufferedValue): null
},
allowHalfOpen: true,
_maxListeners: undefined,
bytesRead: 0,
bytesWritten: 0,
connecting: false,
timeout: 0,
isServer: false,
Symbol(kCapture): false,
Symbol(::bunternal::): undefined
},
statusCode: [Error accessing: undefined is not an object (evaluating 'reqSymbol')],
statusMessage: [Error accessing: undefined is not an object (evaluating 'STATUS_CODES')],
[get/set] httpVersion: "1.1",
[get/set] httpVersionMajor: 1,
[get/set] httpVersionMinor: 1,
[get/set] rawTrailers: [],
[get/set] trailers: [Object: null prototype] {},
setTimeout: ƒ setTimeout(length: 2) {},
[get/set] socket: [Circular: *10]
}
},
METHODS: [
"ACL",
"BIND",
"CHECKOUT",
"CONNECT",
"COPY",
"DELETE",
"GET",
"HEAD",
"LINK",
"LOCK",
"M-SEARCH",
"MERGE",
"MKACTIVITY",
"MKCALENDAR",
"MKCOL",
"MOVE",
"NOTIFY",
"OPTIONS",
"PATCH",
"POST",
"PROPFIND",
"PROPPATCH",
"PURGE",
"PUT",
"REBIND",
"REPORT",
"SEARCH",
"SOURCE",
"SUBSCRIBE",
"TRACE",
"UNBIND",
"UNLINK",
"UNLOCK",
"UNSUBSCRIBE"
],
MessageEvent: ƒ MessageEvent(length: 1) {},
OutgoingMessage: ƒ OutgoingMessage(length: 1) {
prototype: OutgoingMessage {
constructor: [Circular: *22],
_implicitHeader: ƒ (length: 0) {},
appendHeader: ƒ (length: 2) {},
flushHeaders: ƒ (length: 0) {},
getHeader: ƒ (length: 1) {},
getHeaders: ƒ (length: 0) {},
getHeaderNames: ƒ (length: 0) {},
removeHeader: ƒ (length: 1) {},
setHeader: ƒ (length: 2) {},
hasHeader: ƒ (length: 1) {},
addTrailers: ƒ (length: 1) {},
setTimeout: ƒ (length: 2) {}
}
},
STATUS_CODES: {
100: "Continue",
101: "Switching Protocols",
102: "Processing",
103: "Early Hints",
200: "OK",
201: "Created",
202: "Accepted",
203: "Non-Authoritative Information",
204: "No Content",
205: "Reset Content",
206: "Partial Content",
207: "Multi-Status",
208: "Already Reported",
226: "IM Used",
300: "Multiple Choices",
301: "Moved Permanently",
302: "Found",
303: "See Other",
304: "Not Modified",
305: "Use Proxy",
307: "Temporary Redirect",
308: "Permanent Redirect",
400: "Bad Request",
401: "Unauthorized",
402: "Payment Required",
403: "Forbidden",
404: "Not Found",
405: "Method Not Allowed",
406: "Not Acceptable",
407: "Proxy Authentication Required",
408: "Request Timeout",
409: "Conflict",
410: "Gone",
411: "Length Required",
412: "Precondition Failed",
413: "Payload Too Large",
414: "URI Too Long",
415: "Unsupported Media Type",
416: "Range Not Satisfiable",
417: "Expectation Failed",
418: "I'm a Teapot",
421: "Misdirected Request",
422: "Unprocessable Entity",
423: "Locked",
424: "Failed Dependency",
425: "Too Early",
426: "Upgrade Required",
428: "Precondition Required",
429: "Too Many Requests",
431: "Request Header Fields Too Large",
451: "Unavailable For Legal Reasons",
500: "Internal Server Error",
501: "Not Implemented",
502: "Bad Gateway",
503: "Service Unavailable",
504: "Gateway Timeout",
505: "HTTP Version Not Supported",
506: "Variant Also Negotiates",
507: "Insufficient Storage",
508: "Loop Detected",
509: "Bandwidth Limit Exceeded",
510: "Not Extended",
511: "Network Authentication Required"
},
Server: ƒ Server(length: 2) {
prototype: Server {
ref: ƒ ref(length: 0) {},
unref: ƒ unref(length: 0) {},
closeAllConnections: ƒ closeAllConnections(length: 0) {},
closeIdleConnections: ƒ closeIdleConnections(length: 0) {},
close: ƒ close(length: 1) {},
address: ƒ address(length: 0) {},
listen: ƒ listen(length: 0) {},
setTimeout: ƒ setTimeout(length: 2) {},
constructor: [Circular: *36],
Symbol(Symbol.asyncDispose): ƒ [Symbol.asyncDispose](length: 0) {},
Symbol(kRealListen): ƒ [kRealListen](length: 6) {}
}
},
ServerResponse: ƒ ServerResponse(length: 2) {
prototype: ServerResponse {
constructor: [Circular: *48],
_implicitHeader: ƒ (length: 0) {},
_write: ƒ (length: 3) {},
_writev: ƒ (length: 2) {},
_final: ƒ (length: 1) {},
writeProcessing: ƒ (length: 0) {},
addTrailers: ƒ (length: 1) {},
assignSocket: ƒ (length: 1) {},
detachSocket: ƒ (length: 1) {},
writeContinue: ƒ (length: 1) {},
setTimeout: ƒ (length: 2) {},
appendHeader: ƒ (length: 2) {},
flushHeaders: ƒ (length: 0) {},
getHeader: ƒ (length: 1) {},
getHeaders: ƒ (length: 0) {},
getHeaderNames: ƒ (length: 0) {},
removeHeader: ƒ (length: 1) {},
setHeader: ƒ (length: 2) {},
hasHeader: ƒ (length: 1) {},
writeHead: ƒ (length: 3) {}
}
},
WebSocket: ƒ WebSocket(length: 1) {
CONNECTING: 0,
OPEN: 1,
CLOSING: 2,
CLOSED: 3
},
createServer: ƒ createServer(length: 2) {},
default: {
Agent: [Circular: *2],
Server: [Circular: *36],
METHODS: [Circular: *20],
STATUS_CODES: [Circular: *35],
createServer: [Circular: *70],
ServerResponse: [Circular: *48],
IncomingMessage: [Circular: *5],
request: ƒ request(length: 3) {},
get: ƒ get(length: 3) {},
[get/set] maxHeaderSize: 16384,
validateHeaderName: ƒ validateHeaderName(length: 2) {},
validateHeaderValue: ƒ validateHeaderValue(length: 2) {},
setMaxIdleHTTPParsers: ƒ setMaxIdleHTTPParsers(length: 1) {},
globalAgent: Agent {
_events: [Object: null prototype] {},
_eventsCount: 0,
_maxListeners: undefined,
defaultPort: 80,
protocol: "http:",
options: {
path: null,
noDelay: true
},
requests: [Object: null prototype] {},
sockets: [Object: null prototype] {},
freeSockets: [Object: null prototype] {},
keepAliveMsecs: 1000,
keepAlive: false,
maxSockets: Infinity,
maxFreeSockets: 256,
scheduling: "lifo",
maxTotalSockets: undefined,
totalSocketCount: 0,
Symbol(kCapture): false
},
ClientRequest: [Circular: *3],
OutgoingMessage: [Circular: *22],
WebSocket: [Circular: *69],
CloseEvent: [Circular: *4],
MessageEvent: [Circular: *21]
},
get: [Circular: *73],
globalAgent: [Circular: *77],
maxHeaderSize: 16384,
request: [Circular: *72],
setMaxIdleHTTPParsers: [Circular: *76],
validateHeaderName: [Circular: *74],
validateHeaderValue: [Circular: *75]
}
```
_http_outgoing
Node.jsBun
```js
[Object: null prototype] {
OutgoingMessage: ƒ OutgoingMessage(length: 1) {},
default: {
kHighWaterMark: Symbol(kHighWaterMark),
kUniqueHeaders: Symbol(kUniqueHeaders),
parseUniqueHeadersOption: ƒ parseUniqueHeadersOption(length: 1) {},
validateHeaderName: ƒ wrappedFn(length: 0) {
withoutStackTrace: ƒ (length: 2) {}
},
validateHeaderValue: ƒ wrappedFn(length: 0) {
withoutStackTrace: ƒ (length: 2) {}
},
OutgoingMessage: [Circular: *2]
},
kHighWaterMark: Symbol(kHighWaterMark),
kUniqueHeaders: Symbol(kUniqueHeaders),
parseUniqueHeadersOption: [Circular: *4],
validateHeaderName: [Circular: *5],
validateHeaderValue: [Circular: *7]
}
```
```js
{
Agent: ƒ Agent(length: 0) {},
ClientRequest: class ClientRequest extends OutgoingMessage {},
CloseEvent: ƒ CloseEvent(length: 1) {},
IncomingMessage: ƒ IncomingMessage(length: 2) {
prototype: IncomingMessage {
constructor: [Circular: *5],
_construct: ƒ _construct(length: 1) {},
_read: ƒ _read(length: 1) {},
_destroy: ƒ _destroy(length: 2) {},
[get/set] aborted: undefined,
[get/set] connection: Socket {
_events: {
close: undefined,
error: undefined,
prefinish: undefined,
finish: undefined,
drain: undefined,
data: undefined,
end: undefined,
readable: undefined
},
_readableState: {
highWaterMark: 65536,
buffer: [],
bufferIndex: 0,
length: 0,
pipes: [],
awaitDrainWriters: null,
Symbol(kState): 1052940
},
_writableState: {
highWaterMark: 65536,
length: 0,
corked: 0,
onwrite: ƒ bound onwrite(length: 1) {},
writelen: 0,
bufferedIndex: 0,
pendingcb: 0,
Symbol(kState): 17580812,
Symbol(kBufferedValue): null
},
allowHalfOpen: true,
_maxListeners: undefined,
bytesRead: 0,
bytesWritten: 0,
connecting: false,
timeout: 0,
isServer: false,
Symbol(kCapture): false,
Symbol(::bunternal::): undefined
},
statusCode: [Error accessing: undefined is not an object (evaluating 'reqSymbol')],
statusMessage: [Error accessing: undefined is not an object (evaluating 'STATUS_CODES')],
[get/set] httpVersion: "1.1",
[get/set] httpVersionMajor: 1,
[get/set] httpVersionMinor: 1,
[get/set] rawTrailers: [],
[get/set] trailers: [Object: null prototype] {},
setTimeout: ƒ setTimeout(length: 2) {},
[get/set] socket: [Circular: *10]
}
},
METHODS: [
"ACL",
"BIND",
"CHECKOUT",
"CONNECT",
"COPY",
"DELETE",
"GET",
"HEAD",
"LINK",
"LOCK",
"M-SEARCH",
"MERGE",
"MKACTIVITY",
"MKCALENDAR",
"MKCOL",
"MOVE",
"NOTIFY",
"OPTIONS",
"PATCH",
"POST",
"PROPFIND",
"PROPPATCH",
"PURGE",
"PUT",
"REBIND",
"REPORT",
"SEARCH",
"SOURCE",
"SUBSCRIBE",
"TRACE",
"UNBIND",
"UNLINK",
"UNLOCK",
"UNSUBSCRIBE"
],
MessageEvent: ƒ MessageEvent(length: 1) {},
OutgoingMessage: ƒ OutgoingMessage(length: 1) {
prototype: OutgoingMessage {
constructor: [Circular: *22],
_implicitHeader: ƒ (length: 0) {},
appendHeader: ƒ (length: 2) {},
flushHeaders: ƒ (length: 0) {},
getHeader: ƒ (length: 1) {},
getHeaders: ƒ (length: 0) {},
getHeaderNames: ƒ (length: 0) {},
removeHeader: ƒ (length: 1) {},
setHeader: ƒ (length: 2) {},
hasHeader: ƒ (length: 1) {},
addTrailers: ƒ (length: 1) {},
setTimeout: ƒ (length: 2) {}
}
},
STATUS_CODES: {
100: "Continue",
101: "Switching Protocols",
102: "Processing",
103: "Early Hints",
200: "OK",
201: "Created",
202: "Accepted",
203: "Non-Authoritative Information",
204: "No Content",
205: "Reset Content",
206: "Partial Content",
207: "Multi-Status",
208: "Already Reported",
226: "IM Used",
300: "Multiple Choices",
301: "Moved Permanently",
302: "Found",
303: "See Other",
304: "Not Modified",
305: "Use Proxy",
307: "Temporary Redirect",
308: "Permanent Redirect",
400: "Bad Request",
401: "Unauthorized",
402: "Payment Required",
403: "Forbidden",
404: "Not Found",
405: "Method Not Allowed",
406: "Not Acceptable",
407: "Proxy Authentication Required",
408: "Request Timeout",
409: "Conflict",
410: "Gone",
411: "Length Required",
412: "Precondition Failed",
413: "Payload Too Large",
414: "URI Too Long",
415: "Unsupported Media Type",
416: "Range Not Satisfiable",
417: "Expectation Failed",
418: "I'm a Teapot",
421: "Misdirected Request",
422: "Unprocessable Entity",
423: "Locked",
424: "Failed Dependency",
425: "Too Early",
426: "Upgrade Required",
428: "Precondition Required",
429: "Too Many Requests",
431: "Request Header Fields Too Large",
451: "Unavailable For Legal Reasons",
500: "Internal Server Error",
501: "Not Implemented",
502: "Bad Gateway",
503: "Service Unavailable",
504: "Gateway Timeout",
505: "HTTP Version Not Supported",
506: "Variant Also Negotiates",
507: "Insufficient Storage",
508: "Loop Detected",
509: "Bandwidth Limit Exceeded",
510: "Not Extended",
511: "Network Authentication Required"
},
Server: ƒ Server(length: 2) {
prototype: Server {
ref: ƒ ref(length: 0) {},
unref: ƒ unref(length: 0) {},
closeAllConnections: ƒ closeAllConnections(length: 0) {},
closeIdleConnections: ƒ closeIdleConnections(length: 0) {},
close: ƒ close(length: 1) {},
address: ƒ address(length: 0) {},
listen: ƒ listen(length: 0) {},
setTimeout: ƒ setTimeout(length: 2) {},
constructor: [Circular: *36],
Symbol(Symbol.asyncDispose): ƒ [Symbol.asyncDispose](length: 0) {},
Symbol(kRealListen): ƒ [kRealListen](length: 6) {}
}
},
ServerResponse: ƒ ServerResponse(length: 2) {
prototype: ServerResponse {
constructor: [Circular: *48],
_implicitHeader: ƒ (length: 0) {},
_write: ƒ (length: 3) {},
_writev: ƒ (length: 2) {},
_final: ƒ (length: 1) {},
writeProcessing: ƒ (length: 0) {},
addTrailers: ƒ (length: 1) {},
assignSocket: ƒ (length: 1) {},
detachSocket: ƒ (length: 1) {},
writeContinue: ƒ (length: 1) {},
setTimeout: ƒ (length: 2) {},
appendHeader: ƒ (length: 2) {},
flushHeaders: ƒ (length: 0) {},
getHeader: ƒ (length: 1) {},
getHeaders: ƒ (length: 0) {},
getHeaderNames: ƒ (length: 0) {},
removeHeader: ƒ (length: 1) {},
setHeader: ƒ (length: 2) {},
hasHeader: ƒ (length: 1) {},
writeHead: ƒ (length: 3) {}
}
},
WebSocket: ƒ WebSocket(length: 1) {
CONNECTING: 0,
OPEN: 1,
CLOSING: 2,
CLOSED: 3
},
createServer: ƒ createServer(length: 2) {},
default: {
Agent: [Circular: *2],
Server: [Circular: *36],
METHODS: [Circular: *20],
STATUS_CODES: [Circular: *35],
createServer: [Circular: *70],
ServerResponse: [Circular: *48],
IncomingMessage: [Circular: *5],
request: ƒ request(length: 3) {},
get: ƒ get(length: 3) {},
[get/set] maxHeaderSize: 16384,
validateHeaderName: ƒ validateHeaderName(length: 2) {},
validateHeaderValue: ƒ validateHeaderValue(length: 2) {},
setMaxIdleHTTPParsers: ƒ setMaxIdleHTTPParsers(length: 1) {},
globalAgent: Agent {
_events: [Object: null prototype] {},
_eventsCount: 0,
_maxListeners: undefined,
defaultPort: 80,
protocol: "http:",
options: {
path: null,
noDelay: true
},
requests: [Object: null prototype] {},
sockets: [Object: null prototype] {},
freeSockets: [Object: null prototype] {},
keepAliveMsecs: 1000,
keepAlive: false,
maxSockets: Infinity,
maxFreeSockets: 256,
scheduling: "lifo",
maxTotalSockets: undefined,
totalSocketCount: 0,
Symbol(kCapture): false
},
ClientRequest: [Circular: *3],
OutgoingMessage: [Circular: *22],
WebSocket: [Circular: *69],
CloseEvent: [Circular: *4],
MessageEvent: [Circular: *21]
},
get: [Circular: *73],
globalAgent: [Circular: *77],
maxHeaderSize: 16384,
request: [Circular: *72],
setMaxIdleHTTPParsers: [Circular: *76],
validateHeaderName: [Circular: *74],
validateHeaderValue: [Circular: *75]
}
```
_http_server
Node.jsBun
```js
[Object: null prototype] {
STATUS_CODES: {
100: "Continue",
101: "Switching Protocols",
102: "Processing",
103: "Early Hints",
200: "OK",
201: "Created",
202: "Accepted",
203: "Non-Authoritative Information",
204: "No Content",
205: "Reset Content",
206: "Partial Content",
207: "Multi-Status",
208: "Already Reported",
226: "IM Used",
300: "Multiple Choices",
301: "Moved Permanently",
302: "Found",
303: "See Other",
304: "Not Modified",
305: "Use Proxy",
307: "Temporary Redirect",
308: "Permanent Redirect",
400: "Bad Request",
401: "Unauthorized",
402: "Payment Required",
403: "Forbidden",
404: "Not Found",
405: "Method Not Allowed",
406: "Not Acceptable",
407: "Proxy Authentication Required",
408: "Request Timeout",
409: "Conflict",
410: "Gone",
411: "Length Required",
412: "Precondition Failed",
413: "Payload Too Large",
414: "URI Too Long",
415: "Unsupported Media Type",
416: "Range Not Satisfiable",
417: "Expectation Failed",
418: "I'm a Teapot",
421: "Misdirected Request",
422: "Unprocessable Entity",
423: "Locked",
424: "Failed Dependency",
425: "Too Early",
426: "Upgrade Required",
428: "Precondition Required",
429: "Too Many Requests",
431: "Request Header Fields Too Large",
451: "Unavailable For Legal Reasons",
500: "Internal Server Error",
501: "Not Implemented",
502: "Bad Gateway",
503: "Service Unavailable",
504: "Gateway Timeout",
505: "HTTP Version Not Supported",
506: "Variant Also Negotiates",
507: "Insufficient Storage",
508: "Loop Detected",
509: "Bandwidth Limit Exceeded",
510: "Not Extended",
511: "Network Authentication Required"
},
Server: ƒ Server(length: 2) {},
ServerResponse: ƒ ServerResponse(length: 2) {},
_connectionListener: ƒ connectionListener(length: 1) {},
default: {
STATUS_CODES: [Circular: *2],
Server: [Circular: *3],
ServerResponse: [Circular: *4],
setupConnectionsTracking: ƒ setupConnectionsTracking(length: 0) {},
storeHTTPOptions: ƒ storeHTTPOptions(length: 1) {},
_connectionListener: [Circular: *5],
kServerResponse: Symbol(ServerResponse),
httpServerPreClose: ƒ httpServerPreClose(length: 1) {},
kConnectionsCheckingInterval: Symbol(http.server.connectionsCheckingInterval)
},
httpServerPreClose: [Circular: *9],
kConnectionsCheckingInterval: Symbol(http.server.connectionsCheckingInterval),
kServerResponse: Symbol(ServerResponse),
setupConnectionsTracking: [Circular: *7],
storeHTTPOptions: [Circular: *8]
}
```
```js
{
Agent: ƒ Agent(length: 0) {},
ClientRequest: class ClientRequest extends OutgoingMessage {},
CloseEvent: ƒ CloseEvent(length: 1) {},
IncomingMessage: ƒ IncomingMessage(length: 2) {
prototype: IncomingMessage {
constructor: [Circular: *5],
_construct: ƒ _construct(length: 1) {},
_read: ƒ _read(length: 1) {},
_destroy: ƒ _destroy(length: 2) {},
[get/set] aborted: undefined,
[get/set] connection: Socket {
_events: {
close: undefined,
error: undefined,
prefinish: undefined,
finish: undefined,
drain: undefined,
data: undefined,
end: undefined,
readable: undefined
},
_readableState: {
highWaterMark: 65536,
buffer: [],
bufferIndex: 0,
length: 0,
pipes: [],
awaitDrainWriters: null,
Symbol(kState): 1052940
},
_writableState: {
highWaterMark: 65536,
length: 0,
corked: 0,
onwrite: ƒ bound onwrite(length: 1) {},
writelen: 0,
bufferedIndex: 0,
pendingcb: 0,
Symbol(kState): 17580812,
Symbol(kBufferedValue): null
},
allowHalfOpen: true,
_maxListeners: undefined,
bytesRead: 0,
bytesWritten: 0,
connecting: false,
timeout: 0,
isServer: false,
Symbol(kCapture): false,
Symbol(::bunternal::): undefined
},
statusCode: [Error accessing: undefined is not an object (evaluating 'reqSymbol')],
statusMessage: [Error accessing: undefined is not an object (evaluating 'STATUS_CODES')],
[get/set] httpVersion: "1.1",
[get/set] httpVersionMajor: 1,
[get/set] httpVersionMinor: 1,
[get/set] rawTrailers: [],
[get/set] trailers: [Object: null prototype] {},
setTimeout: ƒ setTimeout(length: 2) {},
[get/set] socket: [Circular: *10]
}
},
METHODS: [
"ACL",
"BIND",
"CHECKOUT",
"CONNECT",
"COPY",
"DELETE",
"GET",
"HEAD",
"LINK",
"LOCK",
"M-SEARCH",
"MERGE",
"MKACTIVITY",
"MKCALENDAR",
"MKCOL",
"MOVE",
"NOTIFY",
"OPTIONS",
"PATCH",
"POST",
"PROPFIND",
"PROPPATCH",
"PURGE",
"PUT",
"REBIND",
"REPORT",
"SEARCH",
"SOURCE",
"SUBSCRIBE",
"TRACE",
"UNBIND",
"UNLINK",
"UNLOCK",
"UNSUBSCRIBE"
],
MessageEvent: ƒ MessageEvent(length: 1) {},
OutgoingMessage: ƒ OutgoingMessage(length: 1) {
prototype: OutgoingMessage {
constructor: [Circular: *22],
_implicitHeader: ƒ (length: 0) {},
appendHeader: ƒ (length: 2) {},
flushHeaders: ƒ (length: 0) {},
getHeader: ƒ (length: 1) {},
getHeaders: ƒ (length: 0) {},
getHeaderNames: ƒ (length: 0) {},
removeHeader: ƒ (length: 1) {},
setHeader: ƒ (length: 2) {},
hasHeader: ƒ (length: 1) {},
addTrailers: ƒ (length: 1) {},
setTimeout: ƒ (length: 2) {}
}
},
STATUS_CODES: {
100: "Continue",
101: "Switching Protocols",
102: "Processing",
103: "Early Hints",
200: "OK",
201: "Created",
202: "Accepted",
203: "Non-Authoritative Information",
204: "No Content",
205: "Reset Content",
206: "Partial Content",
207: "Multi-Status",
208: "Already Reported",
226: "IM Used",
300: "Multiple Choices",
301: "Moved Permanently",
302: "Found",
303: "See Other",
304: "Not Modified",
305: "Use Proxy",
307: "Temporary Redirect",
308: "Permanent Redirect",
400: "Bad Request",
401: "Unauthorized",
402: "Payment Required",
403: "Forbidden",
404: "Not Found",
405: "Method Not Allowed",
406: "Not Acceptable",
407: "Proxy Authentication Required",
408: "Request Timeout",
409: "Conflict",
410: "Gone",
411: "Length Required",
412: "Precondition Failed",
413: "Payload Too Large",
414: "URI Too Long",
415: "Unsupported Media Type",
416: "Range Not Satisfiable",
417: "Expectation Failed",
418: "I'm a Teapot",
421: "Misdirected Request",
422: "Unprocessable Entity",
423: "Locked",
424: "Failed Dependency",
425: "Too Early",
426: "Upgrade Required",
428: "Precondition Required",
429: "Too Many Requests",
431: "Request Header Fields Too Large",
451: "Unavailable For Legal Reasons",
500: "Internal Server Error",
501: "Not Implemented",
502: "Bad Gateway",
503: "Service Unavailable",
504: "Gateway Timeout",
505: "HTTP Version Not Supported",
506: "Variant Also Negotiates",
507: "Insufficient Storage",
508: "Loop Detected",
509: "Bandwidth Limit Exceeded",
510: "Not Extended",
511: "Network Authentication Required"
},
Server: ƒ Server(length: 2) {
prototype: Server {
ref: ƒ ref(length: 0) {},
unref: ƒ unref(length: 0) {},
closeAllConnections: ƒ closeAllConnections(length: 0) {},
closeIdleConnections: ƒ closeIdleConnections(length: 0) {},
close: ƒ close(length: 1) {},
address: ƒ address(length: 0) {},
listen: ƒ listen(length: 0) {},
setTimeout: ƒ setTimeout(length: 2) {},
constructor: [Circular: *36],
Symbol(Symbol.asyncDispose): ƒ [Symbol.asyncDispose](length: 0) {},
Symbol(kRealListen): ƒ [kRealListen](length: 6) {}
}
},
ServerResponse: ƒ ServerResponse(length: 2) {
prototype: ServerResponse {
constructor: [Circular: *48],
_implicitHeader: ƒ (length: 0) {},
_write: ƒ (length: 3) {},
_writev: ƒ (length: 2) {},
_final: ƒ (length: 1) {},
writeProcessing: ƒ (length: 0) {},
addTrailers: ƒ (length: 1) {},
assignSocket: ƒ (length: 1) {},
detachSocket: ƒ (length: 1) {},
writeContinue: ƒ (length: 1) {},
setTimeout: ƒ (length: 2) {},
appendHeader: ƒ (length: 2) {},
flushHeaders: ƒ (length: 0) {},
getHeader: ƒ (length: 1) {},
getHeaders: ƒ (length: 0) {},
getHeaderNames: ƒ (length: 0) {},
removeHeader: ƒ (length: 1) {},
setHeader: ƒ (length: 2) {},
hasHeader: ƒ (length: 1) {},
writeHead: ƒ (length: 3) {}
}
},
WebSocket: ƒ WebSocket(length: 1) {
CONNECTING: 0,
OPEN: 1,
CLOSING: 2,
CLOSED: 3
},
createServer: ƒ createServer(length: 2) {},
default: {
Agent: [Circular: *2],
Server: [Circular: *36],
METHODS: [Circular: *20],
STATUS_CODES: [Circular: *35],
createServer: [Circular: *70],
ServerResponse: [Circular: *48],
IncomingMessage: [Circular: *5],
request: ƒ request(length: 3) {},
get: ƒ get(length: 3) {},
[get/set] maxHeaderSize: 16384,
validateHeaderName: ƒ validateHeaderName(length: 2) {},
validateHeaderValue: ƒ validateHeaderValue(length: 2) {},
setMaxIdleHTTPParsers: ƒ setMaxIdleHTTPParsers(length: 1) {},
globalAgent: Agent {
_events: [Object: null prototype] {},
_eventsCount: 0,
_maxListeners: undefined,
defaultPort: 80,
protocol: "http:",
options: {
path: null,
noDelay: true
},
requests: [Object: null prototype] {},
sockets: [Object: null prototype] {},
freeSockets: [Object: null prototype] {},
keepAliveMsecs: 1000,
keepAlive: false,
maxSockets: Infinity,
maxFreeSockets: 256,
scheduling: "lifo",
maxTotalSockets: undefined,
totalSocketCount: 0,
Symbol(kCapture): false
},
ClientRequest: [Circular: *3],
OutgoingMessage: [Circular: *22],
WebSocket: [Circular: *69],
CloseEvent: [Circular: *4],
MessageEvent: [Circular: *21]
},
get: [Circular: *73],
globalAgent: [Circular: *77],
maxHeaderSize: 16384,
request: [Circular: *72],
setMaxIdleHTTPParsers: [Circular: *76],
validateHeaderName: [Circular: *74],
validateHeaderValue: [Circular: *75]
}
```
_stream_duplex
Node.jsBun
```js
[Object: null prototype] {
default: ƒ Duplex(length: 1) {
fromWeb: ƒ (length: 2) {},
toWeb: ƒ (length: 1) {},
from: ƒ (length: 1) {}
},
from: [Circular: *5],
fromWeb: [Circular: *3],
toWeb: [Circular: *4]
}
```
```js
{
EventEmitter: ƒ EventEmitter(length: 1) {
prototype: EventEmitter {
setMaxListeners: ƒ setMaxListeners(length: 1) {},
constructor: [Circular: *2],
getMaxListeners: ƒ getMaxListeners(length: 0) {},
emit: ƒ emit(length: 1) {},
addListener: ƒ addListener(length: 2) {},
on: [Circular: *7],
prependListener: ƒ prependListener(length: 2) {},
once: ƒ once(length: 2) {},
prependOnceListener: ƒ prependOnceListener(length: 2) {},
removeListener: ƒ removeListener(length: 2) {},
off: [Circular: *11],
removeAllListeners: ƒ removeAllListeners(length: 1) {},
listeners: ƒ listeners(length: 1) {},
rawListeners: ƒ rawListeners(length: 1) {},
listenerCount: ƒ listenerCount(length: 2) {},
eventNames: ƒ eventNames(length: 0) {},
Symbol(kCapture): false
},
[get/set] captureRejections: false,
[get/set] defaultMaxListeners: 10,
once: ƒ once(length: 2) {},
on: ƒ on(length: 2) {},
getEventListeners: ƒ getEventListeners(length: 2) {},
getMaxListeners: ƒ getMaxListeners(length: 1) {},
setMaxListeners: ƒ setMaxListeners(length: 0) {},
EventEmitter: [Circular: *2],
usingDomains: false,
captureRejectionSymbol: Symbol(nodejs.rejection),
EventEmitterAsyncResource: class EventEmitterAsyncResource extends EventEmitter {},
errorMonitor: Symbol(events.errorMonitor),
addAbortListener: ƒ addAbortListener(length: 2) {},
init: [Circular: *2],
listenerCount: ƒ listenerCount(length: 2) {}
},
EventEmitterAsyncResource: [Circular: *22],
ReadableState: ƒ ReadableState(length: 3) {
prototype: {
Symbol(kOnConstructed): ƒ onConstructed(length: 1) {}
}
},
_fromList: ƒ fromList(length: 2) {},
addAbortListener: [Circular: *23],
captureRejectionSymbol: Symbol(nodejs.rejection),
captureRejections: false,
default: ƒ Duplex(length: 1) {
fromWeb: ƒ (length: 2) {},
toWeb: ƒ (length: 1) {},
from: ƒ (length: 1) {}
},
defaultMaxListeners: 10,
errorMonitor: Symbol(events.errorMonitor),
from: [Circular: *32],
fromWeb: [Circular: *30],
getEventListeners: [Circular: *19],
getMaxListeners: [Circular: *20],
init: [Circular: *2],
listenerCount: [Circular: *24],
on: [Circular: *18],
once: [Circular: *17],
prototype: Duplex {
destroy: ƒ (length: 2) {},
write: ƒ (length: 3) {},
cork: ƒ (length: 0) {},
uncork: ƒ (length: 0) {},
setDefaultEncoding: ƒ setDefaultEncoding(length: 1) {},
_write: ƒ (length: 3) {},
_writev: null,
end: ƒ (length: 3) {}
},
setMaxListeners: [Circular: *21],
toWeb: [Circular: *31],
usingDomains: false,
wrap: ƒ (length: 2) {}
}
```
_stream_passthrough
Node.jsBun
```js
[Object: null prototype] {
default: ƒ PassThrough(length: 1) {}
}
```
```js
{
EventEmitter: ƒ EventEmitter(length: 1) {
prototype: EventEmitter {
setMaxListeners: ƒ setMaxListeners(length: 1) {},
constructor: [Circular: *2],
getMaxListeners: ƒ getMaxListeners(length: 0) {},
emit: ƒ emit(length: 1) {},
addListener: ƒ addListener(length: 2) {},
on: [Circular: *7],
prependListener: ƒ prependListener(length: 2) {},
once: ƒ once(length: 2) {},
prependOnceListener: ƒ prependOnceListener(length: 2) {},
removeListener: ƒ removeListener(length: 2) {},
off: [Circular: *11],
removeAllListeners: ƒ removeAllListeners(length: 1) {},
listeners: ƒ listeners(length: 1) {},
rawListeners: ƒ rawListeners(length: 1) {},
listenerCount: ƒ listenerCount(length: 2) {},
eventNames: ƒ eventNames(length: 0) {},
Symbol(kCapture): false
},
[get/set] captureRejections: false,
[get/set] defaultMaxListeners: 10,
once: ƒ once(length: 2) {},
on: ƒ on(length: 2) {},
getEventListeners: ƒ getEventListeners(length: 2) {},
getMaxListeners: ƒ getMaxListeners(length: 1) {},
setMaxListeners: ƒ setMaxListeners(length: 0) {},
EventEmitter: [Circular: *2],
usingDomains: false,
captureRejectionSymbol: Symbol(nodejs.rejection),
EventEmitterAsyncResource: class EventEmitterAsyncResource extends EventEmitter {},
errorMonitor: Symbol(events.errorMonitor),
addAbortListener: ƒ addAbortListener(length: 2) {},
init: [Circular: *2],
listenerCount: ƒ listenerCount(length: 2) {}
},
EventEmitterAsyncResource: [Circular: *22],
ReadableState: ƒ ReadableState(length: 3) {
prototype: {
Symbol(kOnConstructed): ƒ onConstructed(length: 1) {}
}
},
_fromList: ƒ fromList(length: 2) {},
addAbortListener: [Circular: *23],
captureRejectionSymbol: Symbol(nodejs.rejection),
captureRejections: false,
default: ƒ PassThrough(length: 1) {},
defaultMaxListeners: 10,
errorMonitor: Symbol(events.errorMonitor),
from: ƒ (length: 1) {},
fromWeb: ƒ (length: 2) {},
getEventListeners: [Circular: *19],
getMaxListeners: [Circular: *20],
init: [Circular: *2],
listenerCount: [Circular: *24],
on: [Circular: *18],
once: [Circular: *17],
prototype: PassThrough {
_transform: ƒ (length: 3) {}
},
setMaxListeners: [Circular: *21],
toWeb: ƒ (length: 1) {},
usingDomains: false,
wrap: ƒ (length: 2) {}
}
```
_stream_readable
Node.jsBun
```js
[Object: null prototype] {
ReadableState: ƒ ReadableState(length: 3) {},
_fromList: ƒ fromList(length: 2) {},
default: ƒ Readable(length: 1) {
ReadableState: [Circular: *2],
_fromList: [Circular: *3],
from: ƒ (length: 2) {},
fromWeb: ƒ (length: 2) {},
toWeb: ƒ (length: 2) {},
wrap: ƒ (length: 2) {}
},
from: [Circular: *5],
fromWeb: [Circular: *6],
toWeb: [Circular: *7],
wrap: [Circular: *8]
}
```
```js
{
EventEmitter: ƒ EventEmitter(length: 1) {
prototype: EventEmitter {
setMaxListeners: ƒ setMaxListeners(length: 1) {},
constructor: [Circular: *2],
getMaxListeners: ƒ getMaxListeners(length: 0) {},
emit: ƒ emit(length: 1) {},
addListener: ƒ addListener(length: 2) {},
on: [Circular: *7],
prependListener: ƒ prependListener(length: 2) {},
once: ƒ once(length: 2) {},
prependOnceListener: ƒ prependOnceListener(length: 2) {},
removeListener: ƒ removeListener(length: 2) {},
off: [Circular: *11],
removeAllListeners: ƒ removeAllListeners(length: 1) {},
listeners: ƒ listeners(length: 1) {},
rawListeners: ƒ rawListeners(length: 1) {},
listenerCount: ƒ listenerCount(length: 2) {},
eventNames: ƒ eventNames(length: 0) {},
Symbol(kCapture): false
},
[get/set] captureRejections: false,
[get/set] defaultMaxListeners: 10,
once: ƒ once(length: 2) {},
on: ƒ on(length: 2) {},
getEventListeners: ƒ getEventListeners(length: 2) {},
getMaxListeners: ƒ getMaxListeners(length: 1) {},
setMaxListeners: ƒ setMaxListeners(length: 0) {},
EventEmitter: [Circular: *2],
usingDomains: false,
captureRejectionSymbol: Symbol(nodejs.rejection),
EventEmitterAsyncResource: class EventEmitterAsyncResource extends EventEmitter {},
errorMonitor: Symbol(events.errorMonitor),
addAbortListener: ƒ addAbortListener(length: 2) {},
init: [Circular: *2],
listenerCount: ƒ listenerCount(length: 2) {}
},
EventEmitterAsyncResource: [Circular: *22],
ReadableState: ƒ ReadableState(length: 3) {
prototype: {
Symbol(kOnConstructed): ƒ onConstructed(length: 1) {}
}
},
_fromList: ƒ fromList(length: 2) {},
addAbortListener: [Circular: *23],
captureRejectionSymbol: Symbol(nodejs.rejection),
captureRejections: false,
default: ƒ Readable(length: 1) {
ReadableState: [Circular: *25],
_fromList: [Circular: *28],
from: ƒ (length: 2) {},
fromWeb: ƒ (length: 2) {},
toWeb: ƒ (length: 2) {},
wrap: ƒ (length: 2) {}
},
defaultMaxListeners: 10,
errorMonitor: Symbol(events.errorMonitor),
from: [Circular: *30],
fromWeb: [Circular: *31],
getEventListeners: [Circular: *19],
getMaxListeners: [Circular: *20],
init: [Circular: *2],
listenerCount: [Circular: *24],
on: [Circular: *18],
once: [Circular: *17],
prototype: Readable {
destroy: ƒ destroy(length: 2) {},
_undestroy: ƒ undestroy(length: 0) {},
_destroy: ƒ (length: 2) {},
push: ƒ (length: 2) {},
unshift: ƒ (length: 2) {},
isPaused: ƒ (length: 0) {},
setEncoding: ƒ (length: 1) {},
read: ƒ (length: 1) {},
_read: ƒ (length: 1) {},
pipe: ƒ (length: 2) {},
unpipe: ƒ (length: 1) {},
on: ƒ (length: 2) {},
addListener: [Circular: *46],
removeListener: ƒ (length: 2) {},
off: [Circular: *47],
removeAllListeners: ƒ (length: 1) {},
resume: ƒ (length: 0) {},
pause: ƒ (length: 0) {},
wrap: ƒ (length: 1) {},
iterator: ƒ (length: 1) {},
Symbol(nodejs.rejection): ƒ (length: 1) {},
Symbol(Symbol.asyncDispose): ƒ (length: 0) {},
Symbol(Symbol.asyncIterator): ƒ (length: 0) {}
},
setMaxListeners: [Circular: *21],
toWeb: [Circular: *32],
usingDomains: false,
wrap: [Circular: *33]
}
```
_stream_transform
Node.jsBun
```js
[Object: null prototype] {
default: ƒ Transform(length: 1) {}
}
```
```js
{
EventEmitter: ƒ EventEmitter(length: 1) {
prototype: EventEmitter {
setMaxListeners: ƒ setMaxListeners(length: 1) {},
constructor: [Circular: *2],
getMaxListeners: ƒ getMaxListeners(length: 0) {},
emit: ƒ emit(length: 1) {},
addListener: ƒ addListener(length: 2) {},
on: [Circular: *7],
prependListener: ƒ prependListener(length: 2) {},
once: ƒ once(length: 2) {},
prependOnceListener: ƒ prependOnceListener(length: 2) {},
removeListener: ƒ removeListener(length: 2) {},
off: [Circular: *11],
removeAllListeners: ƒ removeAllListeners(length: 1) {},
listeners: ƒ listeners(length: 1) {},
rawListeners: ƒ rawListeners(length: 1) {},
listenerCount: ƒ listenerCount(length: 2) {},
eventNames: ƒ eventNames(length: 0) {},
Symbol(kCapture): false
},
[get/set] captureRejections: false,
[get/set] defaultMaxListeners: 10,
once: ƒ once(length: 2) {},
on: ƒ on(length: 2) {},
getEventListeners: ƒ getEventListeners(length: 2) {},
getMaxListeners: ƒ getMaxListeners(length: 1) {},
setMaxListeners: ƒ setMaxListeners(length: 0) {},
EventEmitter: [Circular: *2],
usingDomains: false,
captureRejectionSymbol: Symbol(nodejs.rejection),
EventEmitterAsyncResource: class EventEmitterAsyncResource extends EventEmitter {},
errorMonitor: Symbol(events.errorMonitor),
addAbortListener: ƒ addAbortListener(length: 2) {},
init: [Circular: *2],
listenerCount: ƒ listenerCount(length: 2) {}
},
EventEmitterAsyncResource: [Circular: *22],
ReadableState: ƒ ReadableState(length: 3) {
prototype: {
Symbol(kOnConstructed): ƒ onConstructed(length: 1) {}
}
},
_fromList: ƒ fromList(length: 2) {},
addAbortListener: [Circular: *23],
captureRejectionSymbol: Symbol(nodejs.rejection),
captureRejections: false,
default: ƒ Transform(length: 1) {},
defaultMaxListeners: 10,
errorMonitor: Symbol(events.errorMonitor),
from: ƒ (length: 1) {},
fromWeb: ƒ (length: 2) {},
getEventListeners: [Circular: *19],
getMaxListeners: [Circular: *20],
init: [Circular: *2],
listenerCount: [Circular: *24],
on: [Circular: *18],
once: [Circular: *17],
prototype: Transform {
_final: ƒ final(length: 1) {},
_transform: ƒ (length: 3) {},
_write: ƒ (length: 3) {},
_read: ƒ (length: 0) {}
},
setMaxListeners: [Circular: *21],
toWeb: ƒ (length: 1) {},
usingDomains: false,
wrap: ƒ (length: 2) {}
}
```
_stream_wrap
Node.jsBun
```js
[Object: null prototype] {
default: class JSStreamSocket extends Socket {}
}
(node:2227) [DEP0125] DeprecationWarning: The _stream_wrap module is deprecated.
(Use `node --trace-deprecation ...` to show where the warning was created)
```
```js
{
Duplex: ƒ Duplex(length: 1) {
fromWeb: ƒ (length: 2) {},
toWeb: ƒ (length: 1) {},
from: ƒ (length: 1) {}
},
EventEmitter: ƒ EventEmitter(length: 1) {
prototype: EventEmitter {
setMaxListeners: ƒ setMaxListeners(length: 1) {},
constructor: [Circular: *6],
getMaxListeners: ƒ getMaxListeners(length: 0) {},
emit: ƒ emit(length: 1) {},
addListener: ƒ addListener(length: 2) {},
on: [Circular: *11],
prependListener: ƒ prependListener(length: 2) {},
once: ƒ once(length: 2) {},
prependOnceListener: ƒ prependOnceListener(length: 2) {},
removeListener: ƒ removeListener(length: 2) {},
off: [Circular: *15],
removeAllListeners: ƒ removeAllListeners(length: 1) {},
listeners: ƒ listeners(length: 1) {},
rawListeners: ƒ rawListeners(length: 1) {},
listenerCount: ƒ listenerCount(length: 2) {},
eventNames: ƒ eventNames(length: 0) {},
Symbol(kCapture): false
},
[get/set] captureRejections: false,
[get/set] defaultMaxListeners: 10,
once: ƒ once(length: 2) {},
on: ƒ on(length: 2) {},
getEventListeners: ƒ getEventListeners(length: 2) {},
getMaxListeners: ƒ getMaxListeners(length: 1) {},
setMaxListeners: ƒ setMaxListeners(length: 0) {},
EventEmitter: [Circular: *6],
usingDomains: false,
captureRejectionSymbol: Symbol(nodejs.rejection),
EventEmitterAsyncResource: class EventEmitterAsyncResource extends EventEmitter {},
errorMonitor: Symbol(events.errorMonitor),
addAbortListener: ƒ addAbortListener(length: 2) {},
init: [Circular: *6],
listenerCount: ƒ listenerCount(length: 2) {}
},
EventEmitterAsyncResource: [Circular: *26],
PassThrough: ƒ PassThrough(length: 1) {},
Readable: ƒ Readable(length: 1) {
ReadableState: ƒ ReadableState(length: 3) {
prototype: {
Symbol(kOnConstructed): ƒ onConstructed(length: 1) {}
}
},
_fromList: ƒ fromList(length: 2) {},
from: ƒ (length: 2) {},
fromWeb: ƒ (length: 2) {},
toWeb: ƒ (length: 2) {},
wrap: ƒ (length: 2) {}
},
Stream: ƒ Stream(length: 1) {
isDestroyed: ƒ isDestroyed(length: 1) {},
isDisturbed: ƒ isDisturbed(length: 1) {},
isErrored: ƒ isErrored(length: 1) {},
isReadable: ƒ isReadable(length: 1) {},
isWritable: ƒ isWritable(length: 1) {},
Readable: [Circular: *30],
Writable: ƒ Writable(length: 1) {
WritableState: ƒ WritableState(length: 3) {
prototype: {
getBuffer: ƒ getBuffer(length: 0) {},
Symbol(kOnConstructed): ƒ onConstructed(length: 1) {}
}
},
fromWeb: ƒ (length: 2) {},
toWeb: ƒ (length: 1) {}
},
Duplex: [Circular: *2],
Transform: ƒ Transform(length: 1) {},
PassThrough: [Circular: *29],
duplexPair: ƒ duplexPair(length: 1) {},
pipeline: ƒ pipeline(length: 0) {
[get/set] Symbol(nodejs.util.promisify.custom): ƒ pipeline(length: 0) {}
},
addAbortSignal: ƒ addAbortSignal(length: 2) {},
finished: ƒ eos(length: 3) {
finished: ƒ finished(length: 2) {},
[get/set] Symbol(nodejs.util.promisify.custom): [Circular: *58]
},
destroy: ƒ destroyer(length: 2) {},
compose: ƒ compose(length: 0) {},
setDefaultHighWaterMark: ƒ setDefaultHighWaterMark(length: 2) {},
getDefaultHighWaterMark: ƒ getDefaultHighWaterMark(length: 1) {},
[get/set] promises: {
finished: [Circular: *58],
pipeline: [Circular: *55]
},
Stream: [Circular: *39],
_isArrayBufferView: ƒ isArrayBufferView(length: 1) {},
_isUint8Array: ƒ isUint8Array(length: 1) {},
_uint8ArrayToBuffer: ƒ _uint8ArrayToBuffer(length: 1) {},
eos: [Circular: *57],
EventEmitter: [Circular: *6]
},
Transform: [Circular: *52],
Writable: [Circular: *45],
_isArrayBufferView: [Circular: *64],
_isUint8Array: [Circular: *65],
_uint8ArrayToBuffer: [Circular: *66],
addAbortListener: [Circular: *27],
addAbortSignal: [Circular: *56],
captureRejectionSymbol: Symbol(nodejs.rejection),
captureRejections: false,
compose: [Circular: *60],
default: [Circular: *39],
defaultMaxListeners: 10,
destroy: [Circular: *59],
duplexPair: [Circular: *53],
eos: [Circular: *57],
errorMonitor: Symbol(events.errorMonitor),
finished: [Circular: *57],
getDefaultHighWaterMark: [Circular: *62],
getEventListeners: [Circular: *23],
getMaxListeners: [Circular: *24],
init: [Circular: *6],
isDestroyed: [Circular: *40],
isDisturbed: [Circular: *41],
isErrored: [Circular: *42],
isReadable: [Circular: *43],
isWritable: [Circular: *44],
listenerCount: [Circular: *28],
on: [Circular: *22],
once: [Circular: *21],
pipeline: [Circular: *54],
promises: [Circular: *63],
prototype: Stream {
pipe: ƒ (length: 2) {},
eventNames: ƒ eventNames(length: 0) {}
},
setDefaultHighWaterMark: [Circular: *61],
setMaxListeners: [Circular: *25],
usingDomains: false
}
DeprecationWarning: The _stream_wrap module is deprecated.
code: "DEP0125"
at node:_stream_wrap (node:_stream_wrap:3:20)
```
_stream_writable
Node.jsBun
```js
[Object: null prototype] {
WritableState: ƒ WritableState(length: 3) {},
default: ƒ Writable(length: 1) {
WritableState: [Circular: *2],
fromWeb: ƒ (length: 2) {},
toWeb: ƒ (length: 1) {}
},
fromWeb: [Circular: *4],
toWeb: [Circular: *5]
}
```
```js
{
EventEmitter: ƒ EventEmitter(length: 1) {
prototype: EventEmitter {
setMaxListeners: ƒ setMaxListeners(length: 1) {},
constructor: [Circular: *2],
getMaxListeners: ƒ getMaxListeners(length: 0) {},
emit: ƒ emit(length: 1) {},
addListener: ƒ addListener(length: 2) {},
on: [Circular: *7],
prependListener: ƒ prependListener(length: 2) {},
once: ƒ once(length: 2) {},
prependOnceListener: ƒ prependOnceListener(length: 2) {},
removeListener: ƒ removeListener(length: 2) {},
off: [Circular: *11],
removeAllListeners: ƒ removeAllListeners(length: 1) {},
listeners: ƒ listeners(length: 1) {},
rawListeners: ƒ rawListeners(length: 1) {},
listenerCount: ƒ listenerCount(length: 2) {},
eventNames: ƒ eventNames(length: 0) {},
Symbol(kCapture): false
},
[get/set] captureRejections: false,
[get/set] defaultMaxListeners: 10,
once: ƒ once(length: 2) {},
on: ƒ on(length: 2) {},
getEventListeners: ƒ getEventListeners(length: 2) {},
getMaxListeners: ƒ getMaxListeners(length: 1) {},
setMaxListeners: ƒ setMaxListeners(length: 0) {},
EventEmitter: [Circular: *2],
usingDomains: false,
captureRejectionSymbol: Symbol(nodejs.rejection),
EventEmitterAsyncResource: class EventEmitterAsyncResource extends EventEmitter {},
errorMonitor: Symbol(events.errorMonitor),
addAbortListener: ƒ addAbortListener(length: 2) {},
init: [Circular: *2],
listenerCount: ƒ listenerCount(length: 2) {}
},
EventEmitterAsyncResource: [Circular: *22],
WritableState: ƒ WritableState(length: 3) {
prototype: {
getBuffer: ƒ getBuffer(length: 0) {},
Symbol(kOnConstructed): ƒ onConstructed(length: 1) {}
}
},
addAbortListener: [Circular: *23],
captureRejectionSymbol: Symbol(nodejs.rejection),
captureRejections: false,
default: ƒ Writable(length: 1) {
WritableState: [Circular: *25],
fromWeb: ƒ (length: 2) {},
toWeb: ƒ (length: 1) {}
},
defaultMaxListeners: 10,
errorMonitor: Symbol(events.errorMonitor),
fromWeb: [Circular: *30],
getEventListeners: [Circular: *19],
getMaxListeners: [Circular: *20],
init: [Circular: *2],
listenerCount: [Circular: *24],
on: [Circular: *18],
once: [Circular: *17],
prototype: Writable {
pipe: ƒ (length: 0) {},
write: ƒ (length: 3) {},
cork: ƒ (length: 0) {},
uncork: ƒ (length: 0) {},
setDefaultEncoding: ƒ setDefaultEncoding(length: 1) {},
_write: ƒ (length: 3) {},
_writev: null,
end: ƒ (length: 3) {},
destroy: ƒ (length: 2) {},
_undestroy: ƒ undestroy(length: 0) {},
_destroy: ƒ (length: 2) {},
Symbol(nodejs.rejection): ƒ (length: 1) {},
Symbol(Symbol.asyncDispose): ƒ (length: 0) {}
},
setMaxListeners: [Circular: *21],
toWeb: [Circular: *31],
usingDomains: false
}
```
_tls_common
Node.jsBun
```js
[Object: null prototype] {
SecureContext: ƒ SecureContext(length: 4) {},
createSecureContext: ƒ createSecureContext(length: 1) {},
default: {
SecureContext: [Circular: *2],
createSecureContext: [Circular: *3],
translatePeerCertificate: ƒ translatePeerCertificate(length: 1) {}
},
translatePeerCertificate: [Circular: *5]
}
```
```js
{
CLIENT_RENEG_LIMIT: 3,
CLIENT_RENEG_WINDOW: 600,
DEFAULT_CIPHERS: "DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM…",
DEFAULT_ECDH_CURVE: "auto",
DEFAULT_MAX_VERSION: "TLSv1.3",
DEFAULT_MIN_VERSION: "TLSv1.2",
SecureContext: ƒ SecureContext2(length: 1) {},
Server: ƒ Server(length: 2) {},
TLSSocket: ƒ Socket(length: 1) {
prototype: TLSSocket2 {}
},
checkServerIdentity: ƒ checkServerIdentity(length: 2) {},
connect: ƒ connect(length: 0) {},
convertALPNProtocols: ƒ convertALPNProtocols(length: 2) {},
createSecureContext: ƒ createSecureContext(length: 1) {},
createServer: ƒ createServer(length: 2) {},
default: {
CLIENT_RENEG_LIMIT: 3,
CLIENT_RENEG_WINDOW: 600,
connect: [Circular: *7],
convertALPNProtocols: [Circular: *8],
createSecureContext: [Circular: *9],
createServer: [Circular: *10],
DEFAULT_CIPHERS: "DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM…",
DEFAULT_ECDH_CURVE: "auto",
DEFAULT_MAX_VERSION: "TLSv1.3",
DEFAULT_MIN_VERSION: "TLSv1.2",
getCiphers: ƒ getCiphers(length: 0) {},
parseCertString: ƒ parseCertString(length: 0) {},
SecureContext: [Circular: *2],
Server: [Circular: *3],
TLSSocket: [Circular: *4],
checkServerIdentity: [Circular: *6],
rootCertificates: [
"-----BEGIN CERTIFICATE-----\nMIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkGA1UEBhMC…",
"-----BEGIN CERTIFICATE-----\nMIIEKjCCAxKgAwIBAgIEOGPe+DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChMLRW50cnVz…",
"-----BEGIN CERTIFICATE-----\nMIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJRTESMBAG…",
"-----BEGIN CERTIFICATE-----\nMIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMCVVMxFjAU…",
"-----BEGIN CERTIFICATE-----\nMIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEbMBkGA1UE…",
"-----BEGIN CERTIFICATE-----\nMIIFtzCCA5+gAwIBAgICBQkwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNV…",
"-----BEGIN CERTIFICATE-----\nMIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNV…",
"-----BEGIN CERTIFICATE-----\nMIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCBgjELMAkG…",
"-----BEGIN CERTIFICATE-----\nMIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEhMB8GA1UE…",
"-----BEGIN CERTIFICATE-----\nMIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzElMCMGA1UE…",
"-----BEGIN CERTIFICATE-----\nMIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBlMQswCQYD…",
"-----BEGIN CERTIFICATE-----\nMIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBhMQswCQYD…",
"-----BEGIN CERTIFICATE-----\nMIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBsMQswCQYD…",
"-----BEGIN CERTIFICATE-----\nMIIFujCCA6KgAwIBAgIJALtAHEP1Xk+wMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNVBAYTAkNI…",
"-----BEGIN CERTIFICATE-----\nMIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBIMQswCQYD…",
"-----BEGIN CERTIFICATE-----\nMIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBKMQswCQYD…",
"-----BEGIN CERTIFICATE-----\nMIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCBgTELMAkG…",
"-----BEGIN CERTIFICATE-----\nMIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTELMAkGA1UE…",
"-----BEGIN CERTIFICATE-----\nMIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNVBAYTAkZS…",
"-----BEGIN CERTIFICATE-----\nMIIFsDCCA5igAwIBAgIQFci9ZUdcr7iXAF7kBtK8nTANBgkqhkiG9w0BAQUFADBeMQswCQYD…",
"-----BEGIN CERTIFICATE-----\nMIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYTAlJPMREw…",
"-----BEGIN CERTIFICATE-----\nMIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQGEwJIVTER…",
"-----BEGIN CERTIFICATE-----\nMIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYDVQQGEwJI…",
"-----BEGIN CERTIFICATE-----\nMIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4GA1UECxMX…",
"-----BEGIN CERTIFICATE-----\nMIIF8TCCA9mgAwIBAgIQALC3WhZIX7/hy/WL1xnmfTANBgkqhkiG9w0BAQsFADA4MQswCQYD…",
"-----BEGIN CERTIFICATE-----\nMIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMxEDAOBgNV…",
"-----BEGIN CERTIFICATE-----\nMIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMxEDAOBgNV…",
"-----BEGIN CERTIFICATE-----\nMIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMxEDAOBgNV…",
"-----BEGIN CERTIFICATE-----\nMIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UEBhMCVVMx…",
"-----BEGIN CERTIFICATE-----\nMIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UEBhMCVVMx…",
"-----BEGIN CERTIFICATE-----\nMIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UEBhMCVVMx…",
"-----BEGIN CERTIFICATE-----\nMIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMCVVMxFDAS…",
"-----BEGIN CERTIFICATE-----\nMIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBMMSIwIAYD…",
"-----BEGIN CERTIFICATE-----\nMIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzESMBAGA1UE…",
"-----BEGIN CERTIFICATE-----\nMIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDElMCMGA1U