A .NET framework for building reactive queryable observable services that execute LINQ queries server-side over TCP connections.
Qactive is a reactive queryable observable framework for .NET that extends Reactive Extensions (Rx) to enable server-side execution of LINQ queries. It allows developers to expose queryable observable services over TCP, where clients can write reactive queries that are serialized and run remotely, facilitating real-time data streaming with minimal client overhead.
.NET developers building distributed systems or real-time applications that require reactive data querying across client-server boundaries, particularly those already using Reactive Extensions.
Developers choose Qactive for its seamless integration with Rx and LINQ, enabling elegant server-side query execution over persistent connections without reinventing communication protocols, making distributed reactive programming more accessible.
Reactive queryable observable framework.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Qactive builds directly on Reactive Extensions, allowing developers to use familiar IQbservable and LINQ syntax for distributed queries, as shown in the simple client-server examples.
LINQ queries are serialized as expression trees and executed remotely, reducing client processing overhead and enabling complex logic on the server, as emphasized in the overview.
Persistent TCP connections support bidirectional data flow, including automatic invocation of client-side closures and static members, facilitating real-time interactions without polling.
Anonymous types used in queries are serialized automatically, simplifying data marshaling across client-server boundaries without manual configuration, as noted in the features.
The README explicitly warns that Qactive allows arbitrary code execution on the server, with security mechanisms not fully considered, making it risky for public exposure without extensive hardening.
Currently, only the TCP provider is available, restricting deployment to TCP-based environments and lacking support for other common protocols like HTTP or WebSockets.
While it supports various .NET runtimes, the core providers are .NET Framework-centric, and integration with modern cross-platform setups like .NET Core/5+ may require additional effort.