diff --git a/docs/guides/ecosystem/stric.md b/docs/guides/ecosystem/stric.md index 102bd339fb..15ef72cc6e 100644 --- a/docs/guides/ecosystem/stric.md +++ b/docs/guides/ecosystem/stric.md @@ -2,7 +2,15 @@ name: Build an HTTP server using StricJS and Bun --- -[StricJS](https://github.com/bunsvr) is a minimalist, fast web framework for Bun. Use `bun init` to create an empty project. +[StricJS](https://github.com/bunsvr) is a Bun framework for building high-performance web applications and APIs. + +- **Fast** — Stric is one of the fastest Bun frameworks. See [benchmark](https://github.com/bunsvr/benchmark) for more details. +- **Minimal** — The basic components like `@stricjs/router` and `@stricjs/utils` are under 50kB and require no external dependencies. +- **Extensible** — Stric includes with a plugin system, dependency injection, and optional optimizations for handling requests. + +--- + +Use `bun init` to create an empty project. ```bash $ mkdir myapp diff --git a/docs/runtime/nodejs-apis.md b/docs/runtime/nodejs-apis.md index 1d8d1bf49d..4ee3f7cbc8 100644 --- a/docs/runtime/nodejs-apis.md +++ b/docs/runtime/nodejs-apis.md @@ -4,169 +4,169 @@ This page is updated regularly to reflect compatibility status of the latest ver ## Built-in modules -### [`node:assert`](https://nodejs.org/api/assert.html) 🟢 +### [`node:assert`](https://nodejs.org/api/assert.html) -Fully implemented. +🟢 Fully implemented. -### [`node:async_hooks`](https://nodejs.org/api/async_hooks.html) 🔴 +### [`node:async_hooks`](https://nodejs.org/api/async_hooks.html) -Not implemented. +🔴 Not implemented. -### [`node:buffer`](https://nodejs.org/api/buffer.html) 🟢 +### [`node:buffer`](https://nodejs.org/api/buffer.html) -Fully implemented. +🟢 Fully implemented. -### [`node:child_process`](https://nodejs.org/api/child_process.html) 🟡 +### [`node:child_process`](https://nodejs.org/api/child_process.html) -Missing IPC, `Stream` stdio, `proc.gid`, `proc.uid`, advanced serialization. +🟡 Missing IPC, `Stream` stdio, `proc.gid`, `proc.uid`, advanced serialization. -### [`node:cluster`](https://nodejs.org/api/cluster.html) 🔴 +### [`node:cluster`](https://nodejs.org/api/cluster.html) -Not implemented. +🔴 Not implemented. -### [`node:console`](https://nodejs.org/api/console.html) 🟢 +### [`node:console`](https://nodejs.org/api/console.html) -Recommended to use `console` global instead +🟢 Recommended to use `console` global instead -### [`node:crypto`](https://nodejs.org/api/crypto.html) 🟡 +### [`node:crypto`](https://nodejs.org/api/crypto.html) -Missing `crypto.Certificate` `crypto.ECDH` `crypto.KeyObject` `crypto.X509Certificate` `crypto.checkPrime{Sync}` `crypto.createPrivateKey` `crypto.createPublicKey` `crypto.createSecretKey` `crypto.diffieHellman` `crypto.generateKey{Sync}` `crypto.generateKeyPair{Sync}` `crypto.generatePrime{Sync}` `crypto.getCipherInfo` `crypto.{get|set}Fips` `crypto.hkdf` `crypto.hkdfSync` `crypto.secureHeapUsed` `crypto.setEngine` `crypto.sign` `crypto.verify`. Some methods are not optimized yet. +🟡 Missing `crypto.Certificate` `crypto.ECDH` `crypto.KeyObject` `crypto.X509Certificate` `crypto.checkPrime{Sync}` `crypto.createPrivateKey` `crypto.createPublicKey` `crypto.createSecretKey` `crypto.diffieHellman` `crypto.generateKey{Sync}` `crypto.generateKeyPair{Sync}` `crypto.generatePrime{Sync}` `crypto.getCipherInfo` `crypto.{get|set}Fips` `crypto.hkdf` `crypto.hkdfSync` `crypto.secureHeapUsed` `crypto.setEngine` `crypto.sign` `crypto.verify`. Some methods are not optimized yet. -### [`node:dgram`](https://nodejs.org/api/dgram.html) 🔴 +### [`node:dgram`](https://nodejs.org/api/dgram.html) -Not implemented. +🔴 Not implemented. -### [`node:diagnostics_channel`](https://nodejs.org/api/diagnostics_channel.html) 🔴 +### [`node:diagnostics_channel`](https://nodejs.org/api/diagnostics_channel.html) -Not implemented. +🔴 Not implemented. -### [`node:dns`](https://nodejs.org/api/dns.html) 🟢 +### [`node:dns`](https://nodejs.org/api/dns.html) -Fully implemented. +🟢 Fully implemented. -### [`node:domain`](https://nodejs.org/api/domain.html) 🟢 +### [`node:domain`](https://nodejs.org/api/domain.html) -Fully implemented. +🟢 Fully implemented. -### [`node:events`](https://nodejs.org/api/events.html) 🟡 +### [`node:events`](https://nodejs.org/api/events.html) -Missing `EventEmitterAsyncResource` `events.on`. +🟡 Missing `EventEmitterAsyncResource` `events.on`. -### [`node:fs`](https://nodejs.org/api/fs.html) 🟡 +### [`node:fs`](https://nodejs.org/api/fs.html) -Missing `fs.fdatasync{Sync}` `fs.opendir{Sync}` `fs.{watchFile|unwatchFile}` `fs.{cp|cpSync}`. `fs.promises.open` incorrectly returns a file descriptor instead of a `FileHandle`. +🟡 Missing `fs.fdatasync{Sync}` `fs.opendir{Sync}` `fs.{watchFile|unwatchFile}` `fs.{cp|cpSync}`. `fs.promises.open` incorrectly returns a file descriptor instead of a `FileHandle`. -### [`node:http`](https://nodejs.org/api/http.html) 🟢 +### [`node:http`](https://nodejs.org/api/http.html) -Fully implemented. +🟢 Fully implemented. -### [`node:http2`](https://nodejs.org/api/http2.html) 🔴 +### [`node:http2`](https://nodejs.org/api/http2.html) -Not implemented. +🔴 Not implemented. -### [`node:https`](https://nodejs.org/api/https.html) 🟢 +### [`node:https`](https://nodejs.org/api/https.html) -Fully implemented. +🟢 Fully implemented. -### [`node:inspector`](https://nodejs.org/api/inspector.html) 🔴 +### [`node:inspector`](https://nodejs.org/api/inspector.html) -Not implemented. +🔴 Not implemented. -### [`node:module`](https://nodejs.org/api/module.html) 🟢 +### [`node:module`](https://nodejs.org/api/module.html) -Fully implemented. +🟢 Fully implemented. -### [`node:net`](https://nodejs.org/api/net.html) 🟡 +### [`node:net`](https://nodejs.org/api/net.html) -Missing `net.{get|set}DefaultAutoSelectFamily` `net.SocketAddress` `net.BlockList`. +🟡 Missing `net.{get|set}DefaultAutoSelectFamily` `net.SocketAddress` `net.BlockList`. -### [`node:os`](https://nodejs.org/api/os.html) 🟢 +### [`node:os`](https://nodejs.org/api/os.html) -Fully implemented. +🟢 Fully implemented. -### [`node:path`](https://nodejs.org/api/path.html) 🟢 +### [`node:path`](https://nodejs.org/api/path.html) -Fully implemented. +🟢 Fully implemented. -### [`node:perf_hooks`](https://nodejs.org/api/perf_hooks.html) 🟡 +### [`node:perf_hooks`](https://nodejs.org/api/perf_hooks.html) -Only `perf_hooks.performance.now()` and `perf_hooks.performance.timeOrigin` are implemented. Recommended to use `performance` global instead of `perf_hooks.performance`. +🟡 Only `perf_hooks.performance.now()` and `perf_hooks.performance.timeOrigin` are implemented. Recommended to use `performance` global instead of `perf_hooks.performance`. -### [`node:process`](https://nodejs.org/api/process.html) 🟡 +### [`node:process`](https://nodejs.org/api/process.html) -See `Globals > process`. +🟡 See `Globals > process`. -### [`node:punycode`](https://nodejs.org/api/punycode.html) 🟢 +### [`node:punycode`](https://nodejs.org/api/punycode.html) -Fully implemented. _Deprecated by Node.js._ +🟢 Fully implemented. _Deprecated by Node.js._ -### [`node:querystring`](https://nodejs.org/api/querystring.html) 🟢 +### [`node:querystring`](https://nodejs.org/api/querystring.html) -Fully implemented. +🟢 Fully implemented. -### [`node:readline`](https://nodejs.org/api/readline.html) 🟢 +### [`node:readline`](https://nodejs.org/api/readline.html) -Fully implemented. +🟢 Fully implemented. -### [`node:repl`](https://nodejs.org/api/repl.html) 🔴 +### [`node:repl`](https://nodejs.org/api/repl.html) -Not implemented. +🔴 Not implemented. -### [`node:stream`](https://nodejs.org/api/stream.html) 🟢 +### [`node:stream`](https://nodejs.org/api/stream.html) -Fully implemented. +🟢 Fully implemented. -### [`node:string_decoder`](https://nodejs.org/api/string_decoder.html) 🟢 +### [`node:string_decoder`](https://nodejs.org/api/string_decoder.html) -Fully implemented. +🟢 Fully implemented. -### [`node:sys`](https://nodejs.org/api/util.html) 🟡 +### [`node:sys`](https://nodejs.org/api/util.html) -See `node:util`. +🟡 See `node:util`. -### [`node:timers`](https://nodejs.org/api/timers.html) 🟢 +### [`node:timers`](https://nodejs.org/api/timers.html) -Recommended to use global `setTimeout`, et. al. instead. +🟢 Recommended to use global `setTimeout`, et. al. instead. -### [`node:tls`](https://nodejs.org/api/tls.html) 🟡 +### [`node:tls`](https://nodejs.org/api/tls.html) -Missing `tls.createSecurePair` +🟡 Missing `tls.createSecurePair` -### [`node:trace_events`](https://nodejs.org/api/tracing.html) 🔴 +### [`node:trace_events`](https://nodejs.org/api/tracing.html) -Not implemented. +🔴 Not implemented. -### [`node:tty`](https://nodejs.org/api/tty.html) 🟡 +### [`node:tty`](https://nodejs.org/api/tty.html) -Missing `tty.ReadStream` and `tty.WriteStream`. +🟡 Missing `tty.ReadStream` and `tty.WriteStream`. -### [`node:url`](https://nodejs.org/api/url.html) 🟡 +### [`node:url`](https://nodejs.org/api/url.html) -Missing `url.domainTo{ASCII|Unicode}`. Recommended to use `URL` and `URLSearchParams` globals instead. +🟡 Missing `url.domainTo{ASCII|Unicode}`. Recommended to use `URL` and `URLSearchParams` globals instead. -### [`node:util`](https://nodejs.org/api/util.html) 🟡 +### [`node:util`](https://nodejs.org/api/util.html) -Missing `util.MIMEParams` `util.MIMEType` `util.formatWithOptions()` `util.getSystemErrorMap()` `util.getSystemErrorName()` `util.parseArgs()` `util.stripVTControlCharacters()` `util.transferableAbortController()` `util.transferableAbortSignal()`. +🟡 Missing `util.MIMEParams` `util.MIMEType` `util.formatWithOptions()` `util.getSystemErrorMap()` `util.getSystemErrorName()` `util.parseArgs()` `util.stripVTControlCharacters()` `util.transferableAbortController()` `util.transferableAbortSignal()`. -### [`node:v8`](https://nodejs.org/api/v8.html) 🔴 +### [`node:v8`](https://nodejs.org/api/v8.html) -`serialize` and `deserialize` use JavaScriptCore's wire format instead of V8's. Otherwise, not implemented. For profiling, use [`bun:jsc`](/docs/project/benchmarking#bunjsc) instead. +🔴 `serialize` and `deserialize` use JavaScriptCore's wire format instead of V8's. Otherwise, not implemented. For profiling, use [`bun:jsc`](/docs/project/benchmarking#bunjsc) instead. -### [`node:vm`](https://nodejs.org/api/vm.html) 🟡 +### [`node:vm`](https://nodejs.org/api/vm.html) -Core functionality works, but VM modules are not implemented. `ShadowRealm` can be used. +🟡 Core functionality works, but VM modules are not implemented. `ShadowRealm` can be used. -### [`node:wasi`](https://nodejs.org/api/wasi.html) 🟡 +### [`node:wasi`](https://nodejs.org/api/wasi.html) -Partially implemented. +🟡 Partially implemented. -### [`node:worker_threads`](https://nodejs.org/api/worker_threads.html) 🔴 +### [`node:worker_threads`](https://nodejs.org/api/worker_threads.html) -Not implemented, but coming soon. +🔴 Not implemented, but coming soon. -### [`node:zlib`](https://nodejs.org/api/zlib.html) 🟡 +### [`node:zlib`](https://nodejs.org/api/zlib.html) -Missing `zlib.brotli*` +🟡 Missing `zlib.brotli*`