A library to translate LINQ expression trees into serializable forms for execution on remote services.
Remote.Linq is a .NET library that allows LINQ queries to be constructed on a client and executed on a remote server. It solves the problem of applying complex LINQ operations (like filtering, joining, and aggregating) across service boundaries by serializing expression trees. This enables developers to maintain a consistent LINQ experience while querying remote data sources as if they were local.
.NET developers building distributed applications, microservices, or client-server systems where data querying needs to happen remotely. It's particularly useful for teams using ORMs like Entity Framework and wanting to expose a flexible query API to clients.
Developers choose Remote.Linq because it simplifies remote querying without sacrificing LINQ's expressiveness. It provides a clean abstraction over serialization and execution, supports async workflows, and integrates seamlessly with popular ORMs and JSON serializers.
Simply LINQ your remote resources...
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Converts LINQ expressions to serializable trees, enabling complex remote queries with joins, projections, and aggregations as demonstrated in client samples.
Includes extensions for Entity Framework and EF Core, supporting eager loading and DB functions for seamless server-side execution.
Provides async queryables and async streams, aligning with IAsyncEnumerable for efficient data streaming in .NET applications.
Offers packages for JSON serialization with Newtonsoft.Json and System.Text.Json, easily configurable in ASP.NET Core via AddJsonOptions.
Limited to querying only; insert, update, and delete operations must be implemented separately, as acknowledged in the README with references to other libraries.
Requires custom implementation of data providers and services on both client and server, adding initial complexity compared to drop-in solutions.
Serializing and deserializing expression trees can introduce latency and processing overhead, especially for large or nested queries.