Rust-powered, E2EE, real-time chat SDK with <40kB bundle
npm install socket2jz-corebash
npm install @socket2jz/core
`
Usage
`typescript
import { Socket2jzRoom } from '@socket2jz/core';
// Create a room
const room = new Socket2jzRoom({
url: 'wss://localhost:8443',
e2ee: true
});
// Handle messages
room.on('message', (text) => {
console.log('Received:', text);
});
// Connect and send
await room.join();
room.send('Hello, World!');
// Clean up
room.leave();
`
API
$3
#### Constructor
`typescript
new Socket2jzRoom(config: {
url: string; // WebSocket server URL
e2ee?: boolean; // Enable E2EE (default: true)
})
`
#### Methods
- join(): Promise - Connect to room
- send(text: string): void - Send encrypted message
- leave(): void - Disconnect from room
#### Properties
- connected: boolean - Connection status
- e2eeEnabled: boolean - E2EE status
#### Events
- connected - Connected to room
- disconnected - Disconnected from room
- message - Received message
- error - Error occurred
- reconnecting - Reconnection attempt
Development
`bash
Install dependencies
npm install
Build
npm run build
Test
npm test
Check bundle size
npm run size
`
Bundle Size
- Target: < 40kB brotli compressed
- Check: npm run size`