Skip to content

v1.0.0

Compare
Choose a tag to compare
@rbeauchamp rbeauchamp released this 05 Sep 18:43
· 25 commits to main since this release
c8131ff

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.
  • 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