meiseayoung
|
6ab6d3b99e
|
feat(websocket): add WebSocket Helper with RFC 6455 compliance
Add comprehensive WebSocket support for v-hono framework, inspired by Hono.js WebSocket Helper.
Features:
- upgrade_websocket() function for WebSocket route handlers
- Event-based callbacks: on_open, on_message, on_close, on_error
- WSContext with send(), send_bytes(), send_json(), close() methods
- Connection state tracking (connecting, open, closing, closed)
- Configurable options: ping_interval, max_message_size, timeout, protocols
- Subprotocol negotiation support
- Ping/pong keep-alive handling
- Message size validation with 1009 close code
- Integration with picoev and uSockets backends
Protocol Compliance:
- RFC 6455 compliant handshake with Sec-WebSocket-Accept computation
- Frame encoding/decoding with proper masking
- Close handshake with status codes and reasons
- Text and binary message frame support
Testing:
- 13 property-based test files with 82 tests total
- Validates handshake, frame encoding, masking, JSON round-trip
- Tests context preservation, route patterns, connection state
- All existing tests pass (no regressions)
Files added:
- websocket.v: Core WebSocket implementation
- examples/websocket_demo.v: Chat room example
- examples/websocket_test.html: Browser test client
- tests/test_websocket_*.v: Property-based tests
Files modified:
- app.v: Add ws() method for WebSocket routes
- middleware.v: Export WebSocket types and functions
- picoev_server.v: WebSocket upgrade detection
- usockets_server.v: WebSocket upgrade detection
- README.md: WebSocket documentation
|
2026-01-04 13:38:12 +08:00 |
|
meiseayoung
|
4e2c6a90c3
|
feat: add 7 built-in middleware components inspired by Hono.js
New Middleware:
- CORS: Cross-Origin Resource Sharing with full configuration support
- Cookie Helper: Cookie management with signed cookie support (HMAC-SHA256)
- JWT: JSON Web Token authentication (HS256/384/512)
- Bearer Auth: Simple Bearer token authentication
- Compression: Gzip and deflate response compression
- Rate Limiting: Request rate limiting with customizable stores
- Validator: Schema-based request validation
Features:
- Context store for middleware data sharing (get/set/get_client_ip)
- Middleware export module with utility functions
- Comprehensive property-based tests for all middleware
- Example file demonstrating all middleware usage
Files Added:
- cors.v, cookie.v, jwt.v, bearer_auth.v, compress.v, rate_limit.v, validator.v
- middleware.v (unified exports)
- examples/middleware_demo.v
- tests/test_*.v (9 new test files)
Documentation:
- Updated README.md with detailed middleware usage guide
- Added Schema Builder API documentation
|
2026-01-04 11:11:15 +08:00 |
|
meiseayoung
|
9eb360926b
|
feat(usockets): optimize high concurrency support up to 10,000+ connections
- Increase uSockets listen() backlog from 512 to 16384 in bsd.c
- Add high concurrency test suite (5000-10000 concurrent connections)
- Add HIGH_CONCURRENCY.md documentation with optimization guide
- Add usockets/build.sh script for rebuilding uSockets library
- Update README with latest benchmark results
Performance (macOS M3 Max):
- 5,000 concurrent: 81,524 RPS, 100% success
- 10,000 concurrent: 24,198 RPS, 100% success
System requirements:
- kern.ipc.somaxconn >= 8192
- ulimit -n 65535
|
2026-01-03 20:45:30 +08:00 |
|
meiseayoung
|
3b8d21dd0d
|
fix: update import path to VPM package name (meiseayoung.hono)
- Change all `import hono` to `import meiseayoung.hono` in code and docs
- Ensure compatibility with VPM installation via `v install meiseayoung.hono`
|
2026-01-02 22:05:12 +08:00 |
|
meiseayoung
|
07382ab622
|
feat: integration usockets backend
|
2025-12-31 15:44:51 +08:00 |
|
meiseayoung
|
645d8c2dda
|
feat: add redirect method
|
2025-12-30 14:25:35 +08:00 |
|
meiseayoung
|
6fe79d298d
|
chore: use x.json2 module replace json_parser
|
2025-12-30 12:58:42 +08:00 |
|
meiseayoung
|
85b001225e
|
doc: remove publish doc
|
2025-12-30 11:15:44 +08:00 |
|
meiseayoung
|
8825ef9b25
|
chore: change module and repo name
|
2025-12-30 11:12:48 +08:00 |
|
meiseayoung
|
782a4e7795
|
refc: Refactor project structure
|
2025-12-30 11:00:46 +08:00 |
|
meiseayoung
|
369655a9ea
|
doc: rewrite README.MD content
|
2025-12-29 18:06:05 +08:00 |
|
yangshangbo
|
441a8f114d
|
feat: first /upload/chunk_exists request alone
|
2025-07-11 18:07:59 +08:00 |
|
yangshangbo
|
e362c4ffb5
|
feat: chunk file upload add quest pool
|
2025-07-11 16:32:15 +08:00 |
|
yangshangbo
|
e5c8bad871
|
fix: change README.MD to README.md
|
2025-07-11 10:16:05 +08:00 |
|