meiseayoung
9ae9170bcb
feat: add SSE streaming helper support
...
Add Server-Sent Events (SSE) and streaming response support with three
streaming functions:
- stream(): Basic binary streaming with chunked transfer encoding
- stream_text(): Text streaming with proper Content-Type headers
- stream_sse(): SSE event streaming with full event field support
Features:
- SSEEvent struct with data, event, id, retry fields
- StreamContext for write, writeln, write_sse, sleep, pipe operations
- Multi-line data handling in SSE events
- Custom error handler support
- Client disconnect detection via on_abort callback
- Integrated with both Picoev and uSockets backends
New files:
- streaming.v: Core streaming implementation
- examples/sse_demo.v: Comprehensive SSE demo with test page
- tests/test_stream_*.v: 62 property-based tests
Updated:
- picoev_server.v: PicoevStreamWriter integration
- usockets_server.v: UsocketsStreamWriter integration
- README.md: SSE streaming documentation
2026-01-04 15:13:28 +08:00
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
44ba82c194
chore: update v.mod version
2026-01-03 20:50:24 +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
43aae4f10d
chore: update v.mod version
2026-01-02 21:51:01 +08:00
meiseayoung
05bb2d6c95
feat: cross-platform uSockets support and route cache optimization
...
1. Cross-platform uSockets configuration
- Use @VMODROOT for portable library paths
- Support macOS (arm64/x86_64), Windows, and Linux
- Auto-detect Homebrew paths for libuv on macOS
2. Route cache optimization (3x performance boost)
- Replace LRU cache with FastRouteCache for dynamic routes
- Zero-overhead cache lookup (no TTL check, no LRU reordering)
- Dynamic route performance: 30k -> 97k RPS
3. New test files
- Go-based integration tests for picoev and uSockets
- FastCache optimization validation tests
- Benchmark comparison tools
2026-01-02 21:44:07 +08:00
meiseayoung
9aefe5714d
chore: update v.mod version
2025-12-31 18:35:29 +08:00
meiseayoung
1fc22044c3
perf: optimize HTTP parsing with zero-allocation techniques
...
- Refactor parse_path_and_query() to use single-pass traversal instead of split()
- Add eq_ignore_case() and contains_ignore_case() to avoid to_lower() allocations
- Optimize HTTP method parsing with first-char branching (parse_http_method_fast)
- Optimize Keep-Alive header check to avoid string allocations
- Apply optimizations to all server backends: picoev, usockets, and app.v
Performance improvements:
- Query string parsing: 20-44% faster
- Keep-Alive check: 82-90% faster
- HTTP method parsing: eliminates string comparison overhead
- Response header processing: removes to_lower() allocations
All 20+ test suites pass with no regressions.
2025-12-31 18:34:46 +08:00
meiseayoung
b478269d8e
chore: update v.mod version
2025-12-31 17:38:29 +08:00
meiseayoung
69d1385ced
perf: 0 middleware ignore copy
2025-12-31 17:37:51 +08:00
meiseayoung
1482b9c4d9
doc: add Framework Comparison
2025-12-31 16:04:44 +08:00
meiseayoung
0937dd268c
chore: update v.mod version
2025-12-31 15:46:10 +08:00
meiseayoung
07382ab622
feat: integration usockets backend
2025-12-31 15:44:51 +08:00
meiseayoung
5375b7394f
chore: update v.mod version
2025-12-30 21:40:39 +08:00
meiseayoung
d0298ea577
fix: In high concurrency (200+), V-Hono experiences an error where the connection is reset problem
2025-12-30 19:23:09 +08:00
meiseayoung
8e1007a1b4
chore: update v.mod version
2025-12-30 18:42:02 +08:00
meiseayoung
6cdba50f36
fix: Remove duplicate response headers
2025-12-30 18:41:34 +08:00
meiseayoung
418ead392b
chore: update v.mod version
2025-12-30 18:29:52 +08:00
meiseayoung
e305abba2b
fix: fix the issue of During ultra-high concurrency (5000 req, 200 concurrent) URL Params testing, stability issues were encountered (success rate only 0.24%).
2025-12-30 18:29:03 +08:00
meiseayoung
e22f612f24
chore: update v.mod version
2025-12-30 17:32:05 +08:00
meiseayoung
a38aeea614
perf: use picoev as default Server for improve response concurrency
2025-12-30 17:31:13 +08:00
meiseayoung
ee2818782b
chore: update v.mod version
2025-12-30 14:27:57 +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
a95485dd25
migr: migration json to x.json2
2025-12-30 12:40:30 +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
meiseayoung
e1a86d108b
fix: 修复路由分组功能; 添加Hono app添加all,not_found,on_error方法
2025-12-29 17:54:52 +08:00
meiseayoung
3ef232a077
perf: 静态路由修改为简单的map缓存
2025-12-29 12:14:20 +08:00
meiseayoung
7c1aa656ab
chore: 记录HTTP Keep-Alive 连接复用不支持的问题
2025-12-26 15:52:24 +08:00
meiseayoung
3355e274e2
perf: 重构优化路由性能,添加日志系统,优化大文件内存占用,加强输入验证及路径安全等
2025-12-26 13:46:25 +08:00
meiseayoung
1f8e9ac11e
Update v.mod
2025-07-11 11:24:14 +08:00
meiseayoung
a59b768d94
Update README.MD
2025-07-10 22:08:44 +08:00
meiseayoung
d09b01dbb2
Update README.MD
2025-07-10 22:04:45 +08:00