v1.0.0
We are thrilled to announce the initial release of RxDBDotNet v1.0.0! This release marks a significant milestone in bringing the power of RxDB replication to the .NET ecosystem, seamlessly integrated with Hot Chocolate GraphQL.
Features
Core Functionality
- Full RxDB Protocol Support: Implements the complete RxDB replication protocol, enabling seamless integration with RxDB clients.
- Hot Chocolate GraphQL Integration: Leverages the power of Hot Chocolate to provide a robust GraphQL API for replication.
- Real-Time & Offline-First Capabilities: Supports real-time data synchronization and offline-first operations, allowing clients to work offline and sync when back online.
Replication Protocol Implementation
- Document-Level Replication: Supports git-like replication model for efficient client-server synchronization.
- Transfer-Level Protocol:
- Pull Handler: Implemented via
Pull<your-replicated-document>
query with checkpoint-based iteration. - Push Handler: Implemented via
Push<your-replicated-document>
mutation with conflict detection. - Pull Stream: Implemented using GraphQL subscriptions for real-time updates.
- Pull Handler: Implemented via
- Checkpoint Iteration: Efficiently synchronizes data using checkpoints, allowing clients to catch up after being offline.
- Event Observation: Utilizes GraphQL subscriptions for real-time event streaming.
Security and Authorization
- Policy-Based Security: Integrates with ASP.NET Core's authorization infrastructure for fine-grained access control.
- Customizable Security Policies: Allows definition of custom policies for read and write operations on replicated documents.
Advanced Features
- Subscription Topics: Supports topic-based subscriptions, allowing clients to subscribe to specific subsets of documents.
- Custom Error Types: Enables configuration of custom exception types for detailed error reporting during replication operations.
- Structured Error Handling: Implements advanced error handling using GraphQL mutation conventions for consistent and detailed error reporting.
Developer Experience
- Quick Setup: Minimal configuration required to get started with RxDBDotNet.
- Extensible Design: Allows for easy extension with custom document types and services.
- Comprehensive Documentation: Includes detailed README and inline documentation for easy understanding and usage.
Getting Started
To start using RxDBDotNet, install the NuGet package:
dotnet add package RxDBDotNet
For a quick start guide and more detailed documentation, please refer to our README.md.
Breaking Changes
As this is the initial release, there are no breaking changes to report.
Known Issues
- Clients using the standard RxDB GraphQL plugin may need modifications to work with RxDBDotNet's advanced error handling approach. Please refer to the "Important Note for RxDB GraphQL Plugin Users" section in the README for more details.
Future Plans
We are committed to the continuous improvement of RxDBDotNet. Future releases will focus on:
- Enhanced performance optimizations
- Additional integration options with popular .NET frameworks and libraries
- Expanded documentation and examples
- Community-driven feature requests and improvements
Contributing
We welcome contributions from the community! Please see our Contributing Guide for more information on how to get involved.
Acknowledgments
We would like to thank the RxDB and Hot Chocolate communities for their inspiration and excellent work, which has made this project possible.
Thank you for your interest in RxDBDotNet. We're excited to see what you'll build with it!
For any questions, issues, or feedback, please open an issue on our GitHub repository.
Happy coding!
The RxDBDotNet Team