mirror of
https://github.com/xtr-dev/rondevu-client.git
synced 2025-12-12 20:03:24 +00:00
Adds automatic request batching to reduce HTTP overhead by combining
multiple RPC calls into a single request.
Features:
- RpcBatcher class for intelligent request batching
- Configurable batch size (default: 10 requests)
- Configurable wait time (default: 50ms)
- Throttling to prevent overwhelming the server (default: 10ms)
- Automatic flushing when batch is full
- Enabled by default, can be disabled via options
Changes:
- Created rpc-batcher.ts with RpcBatcher class
- Updated RondevuAPI to use batcher by default
- Added batching option to RondevuOptions
- Updated README with batching documentation
- Bumped version to 0.16.0
Example usage:
// Default (batching enabled with defaults)
const rondevu = new Rondevu({ apiUrl: 'https://api.ronde.vu' })
// Custom batching settings
const rondevu = new Rondevu({
apiUrl: 'https://api.ronde.vu',
batching: { maxBatchSize: 20, maxWaitTime: 100 }
})
// Disable batching
const rondevu = new Rondevu({
apiUrl: 'https://api.ronde.vu',
batching: false
})
This can reduce HTTP requests by up to 90% during intensive operations
like ICE candidate exchange.
🤖 Generated with Claude Code
https://claude.com/claude-code
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
36 lines
800 B
TypeScript
36 lines
800 B
TypeScript
/**
|
|
* @xtr-dev/rondevu-client
|
|
* WebRTC peer signaling client
|
|
*/
|
|
|
|
export { Rondevu } from './rondevu.js'
|
|
export { RondevuAPI } from './api.js'
|
|
export { RondevuSignaler } from './rondevu-signaler.js'
|
|
export { RpcBatcher } from './rpc-batcher.js'
|
|
|
|
// Export crypto adapters
|
|
export { WebCryptoAdapter } from './web-crypto-adapter.js'
|
|
export { NodeCryptoAdapter } from './node-crypto-adapter.js'
|
|
|
|
// Export types
|
|
export type {
|
|
Signaler,
|
|
Binnable,
|
|
} from './types.js'
|
|
|
|
export type {
|
|
Keypair,
|
|
OfferRequest,
|
|
ServiceRequest,
|
|
Service,
|
|
ServiceOffer,
|
|
IceCandidate,
|
|
} from './api.js'
|
|
|
|
export type { RondevuOptions, PublishServiceOptions } from './rondevu.js'
|
|
|
|
export type { PollingConfig } from './rondevu-signaler.js'
|
|
|
|
export type { CryptoAdapter } from './crypto-adapter.js'
|
|
|