How lorkydey/prnext works
PRNext is an early-alpha React/npm framework focused on reducing runtime memory use while retaining partial Next.js compatibility. Its main workflow is a developer invoking the CLI to start the native server, which routes requests to rendering workers and returns rendered responses; app rendering also supports streaming, navigation, metadata, and server actions. The repository includes compatibility APIs, caching, and configurable runtime profiles. Some capability links are based on the README or SOURCE INDEX; unsampled implementations and their internal call paths are not assumed.
Main entry points: rsc-worker.mjs App render worker · server.rs HTTP server · cli.mjs PRNext CLI · app-routing.mjs App routing
Components 21
Entry and server
- PRNext CLI
packages/prnext/cli.mjs - Native resolver
packages/prnext/native/resolve.mjs - HTTP server
crates/prnext/src/server.rs - Worker pool
crates/prnext/src/pool.rs
Routing and rendering
- Route manifest
crates/prnext/src/manifest.rs - Custom routes
crates/prnext/src/custom_routes.rs - Middleware
crates/prnext/src/middleware.rs - Proxy handling
crates/prnext/src/proxy.rs - App render worker
packages/prnext/runtime/rsc-worker.mjs - App routing
packages/prnext/runtime/app-routing.mjs - Branch rendering
packages/prnext/runtime/app-routing-context.mjs - App metadata
packages/prnext/runtime/app-metadata.mjs - Partial model
packages/prnext/runtime/app-partial-model.mjs - Server actions
packages/prnext/runtime/action-server.mjs
Compatibility and cache
- Request APIs
packages/prnext/compat/headers.cjs - Data cache
packages/prnext/compat/data-cache.cjs - Static generation
packages/prnext/compat/static-generation.cjs - Router compatibility
packages/prnext/compat/router.cjs - Path compatibility
packages/prnext/compat/paths.cjs
Runtime controls
- Runtime profiles
crates/prnext/src/profile.rs
Other components
- Developer
Connections 24
- Developer → PRNext CLI: runs commands
README.md - PRNext CLI → Native resolver: resolves binary
packages/prnext/cli.mjs - Native resolver → HTTP server: launches server
- HTTP server → Route manifest: uses routes
crates/prnext/src/server.rs - HTTP server → Worker pool: dispatches requests
crates/prnext/src/server.rs - HTTP server → Custom routes: matches routes
crates/prnext/src/server.rs - HTTP server → Middleware: applies middleware
crates/prnext/src/server.rs - HTTP server → Proxy handling: handles proxying
crates/prnext/src/server.rs - Worker pool → App render worker: requests rendering
- App render worker → App routing: loads routing
packages/prnext/runtime/rsc-worker.mjs - App render worker → App metadata: loads metadata
packages/prnext/runtime/rsc-worker.mjs - App render worker → Server actions: handles actions
packages/prnext/runtime/rsc-worker.mjs - App render worker → Data cache: flushes cache work
packages/prnext/runtime/rsc-worker.mjs - App render worker → Static generation: tracks static work
packages/prnext/runtime/rsc-worker.mjs - App routing → Branch rendering: renders branches
packages/prnext/runtime/app-routing-context.mjs - App routing → App metadata: uses metadata
packages/prnext/runtime/app-routing.mjs - App render worker → Request APIs: sets request context
packages/prnext/runtime/rsc-worker.mjs - Request APIs → Data cache: creates cache state
packages/prnext/compat/headers.cjs - Request APIs → Static generation: creates static state
packages/prnext/compat/headers.cjs - App render worker → Partial model: uses partial model
packages/prnext/runtime/rsc-worker.mjs - App render worker → Router compatibility: supports router APIs
- App render worker → Path compatibility: uses path APIs
packages/prnext/runtime/rsc-worker.mjs - PRNext CLI → Runtime profiles: selects profile
- Developer → Runtime profiles: chooses profile
README.md