Features and limitations
What you can do
- Register GET and POST JSON APIs with minimal code
- Register API keys for any HTTP method through
Server - Return an API handler result directly as the successful response
- Match Express 5 route parameters and return them through
params - Set an explicit HTTP status and body with
apiResponse() - Serve static files from the same HTTP server
- Register WebSocket handlers by path
- Provide APIs, pages, and WebSocket endpoints from the same process
- Add Express middleware
- Display local and network URLs
- Display a QR code for LAN access
- Find another port when the requested port is in use
- Stop HTTP and WebSocket connections on SIGINT / SIGTERM
- Create projects for different use cases from CLI templates
Compatibility policy
The public TypeScript API and documented protocol remain backward compatible throughout v1.x. Backward-compatible additions and fixes may be released. The next breaking changes are reserved for v2.0.0.
Current limitations
- For API registration paths, WebSocket registration paths, and public file URL paths, names whose first segment starts with
__tyoiare reserved for internal use. Do not use paths such as/__tyoi,/__tyoi-status, or/__tyoi_assets/...in applications. When the API base is/api,/api/__tyoi-status, which corresponds to the registration path/__tyoi-status, is also reserved ShortHandlerprovides HTTP shortcuts only forget()andpost()- Response headers and streams cannot be controlled directly from an API handler
- Authentication, authorization, CORS, TLS, rate limiting, and persistence are not built in
- Static serving has no SPA fallback; unmatched paths return the HTML 404 page
- WebSocket rooms, broadcasting, and message formats must be implemented by the application
- The CLI discovers only JavaScript configuration files, not TypeScript files
- Multiple
tyoi*.config.jsfiles are not merged; one file is selected
Use middlewares to provide missing HTTP behavior, and implement state management or authentication in the application.