Changelog
All notable changes to the Vaultys Peer SDK will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]β
Addedβ
- Multiple browser storage provider implementations
OPFSStorageProviderfor high-performance native file system accessIndexedDBStorageProviderfor structured data storage with wide browser supportBrowserStorageProviderwith automatic backend selection (OPFS β IndexedDB β LocalStorage)
- Identity profile management for CLI application
- Support for multiple named identities with
--asparameter - Persistent identity storage across sessions
- Profile switching capabilities
- Support for multiple named identities with
- Interactive "talk mode" for CLI chat application
- WhatsApp-like continuous chat interface
- Message history display when entering talk mode
- File sending within talk mode using
/filecommand - Ctrl+C to exit talk mode
- Nickname support throughout the CLI application
- Use nicknames instead of DIDs in all commands
- Tab auto-completion for nicknames
- Automatic DID resolution from nicknames
- Web chat example application
- WhatsApp-like responsive interface
- Real-time messaging with WebRTC
- File sharing capabilities
- Contact management with online/offline status
- Browser notifications for new messages
- Persistent storage using browser storage providers
- Comprehensive documentation
- Getting started guides
- API reference documentation
- Storage provider documentation
- Browser and Node.js usage guides
- Example applications documentation
Changedβ
- Improved CLI user interface with better visual formatting
- Enhanced message display with timestamps and formatting
- Better error messages and user feedback
- Upgraded storage provider interface for consistency
Fixedβ
- Identity persistence in CLI application
- Storage provider initialization issues
- Message delivery reliability improvements
[1.0.0] - 2024-01-XXβ
Addedβ
- Initial release of Vaultys Peer SDK
- Core
PeerServicefor managing P2P connections VaultysPeerclass for WebRTC peer connections- Message sending and receiving capabilities
- Contact management system
- Group communication support
- Event-driven architecture with EventEmitter
- Storage provider interface with multiple implementations
NodeFSStorageProviderfor Node.js file system storageMemoryStorageProviderfor temporary in-memory storage- Support for text and file messages
- Automatic reconnection logic
- Health check system for peer connections
- Message history with pagination
- TypeScript support with full type definitions
- Cross-platform support (Browser and Node.js)
- PeerJS integration for signaling
- WebRTC data channels for communication
Featuresβ
- Peer-to-Peer Communication: Direct connections between peers using WebRTC
- Message Types: Support for text, file, room, and system messages
- Storage Abstraction: Pluggable storage providers for different environments
- Event System: Comprehensive event system for real-time updates
- Contact Management: Add, remove, and manage contacts with metadata
- Group Support: Create and manage group conversations
- File Sharing: Send files directly between peers
- Auto Reconnection: Automatic reconnection on connection loss
- Message Persistence: Store and retrieve message history
- Cross-Platform: Works in both browser and Node.js environments
Securityβ
- DID-based identity system
- Peer-to-peer encryption via WebRTC
- No central server for message storage
- Local-first data storage
Developer Experienceβ
- Simple API with
setupVaultysPeerSDKhelper - Comprehensive TypeScript types
- Extensive documentation
- Example applications
- Debug mode for development
[0.9.0-beta] - 2023-12-XXβ
Addedβ
- Beta release for testing
- Basic peer-to-peer connectivity
- Simple message exchange
- Initial storage provider interface
- Basic contact management
Known Issuesβ
- Limited browser support
- No automatic reconnection
- Basic error handling
- Limited documentation
[0.1.0-alpha] - 2023-11-XXβ
Addedβ
- Alpha release for internal testing
- Proof of concept for P2P communication
- Basic WebRTC implementation
- Simple message protocol
Version Guidelinesβ
Version Numberingβ
- Major (X.0.0): Breaking API changes
- Minor (0.X.0): New features, backward compatible
- Patch (0.0.X): Bug fixes, backward compatible
Breaking Changes Policyβ
- Breaking changes will be documented with migration guides
- Deprecation warnings for at least one minor version
- Clear upgrade path documentation
Supported Versionsβ
- Latest major version: Full support
- Previous major version: Security updates for 6 months
- Older versions: No support
Deprecation Policyβ
- Feature marked as deprecated with warning
- Alternative provided in documentation
- Removal in next major version
- Migration guide provided
Upgrade Instructionsβ
From 0.x to 1.0β
- Update package:
npm install @vaultys/peer-sdk@latest - Update imports if using old paths
- Review breaking changes in storage provider interface
- Test message sending/receiving functionality
- Update event listener names if needed
Storage Provider Migrationβ
If using custom storage providers, update to new interface:
// Old interface
class OldProvider {
async store(key, value) { }
async retrieve(key) { }
}
// New interface
class NewProvider {
async write(path, data) { }
async read(path) { }
async delete(path) { }
async exists(path) { }
// ... additional methods
}
Reporting Issuesβ
Found a bug or have a feature request? Please open an issue on our GitHub repository.
When reporting bugs, please include:
- SDK version
- Browser/Node.js version
- Operating system
- Steps to reproduce
- Expected behavior
- Actual behavior
- Error messages/stack traces
Contributingβ
We welcome contributions! Please see our Contributing Guide for details.
For more information, visit the documentation