All Projects → Yortw → Spooky

Yortw / Spooky

Licence: MIT license
An HttpClient based Json RPC 2.0/XML-RPC client for .Net.

Programming Languages

C#
18002 projects
Batchfile
5799 projects

Projects that are alternatives of or similar to Spooky

Joyrpc
high-performance, high-extensibility Java rpc framework.
Stars: ✭ 290 (+1712.5%)
Mutual labels:  json-rpc, rpc
Rpc Codec
JSON-RPC 2.0 codec for Go net/rpc standard library
Stars: ✭ 87 (+443.75%)
Mutual labels:  json-rpc, rpc
Vs Streamjsonrpc
The StreamJsonRpc library offers JSON-RPC 2.0 over any .NET Stream, WebSocket, or Pipe. With bonus support for request cancellation, client proxy generation, and more.
Stars: ✭ 421 (+2531.25%)
Mutual labels:  json-rpc, rpc
jsonrpcpp
C++ JSON-RPC 2.0 library
Stars: ✭ 97 (+506.25%)
Mutual labels:  json-rpc, rpc
Jsonrpc
The jsonrpc package helps implement of JSON-RPC 2.0
Stars: ✭ 143 (+793.75%)
Mutual labels:  json-rpc, rpc
scala-json-rpc
Let your servers and clients communicate over function calls! JSON-RPC 2.0 library for Scala and Scala.js
Stars: ✭ 38 (+137.5%)
Mutual labels:  json-rpc, rpc
Libjson Rpc Cpp
C++ framework for json-rpc (json remote procedure call)
Stars: ✭ 653 (+3981.25%)
Mutual labels:  json-rpc, rpc
Getty
a netty like asynchronous network I/O library based on tcp/udp/websocket; a bidirectional RPC framework based on JSON/Protobuf; a microservice framework based on zookeeper/etcd
Stars: ✭ 532 (+3225%)
Mutual labels:  json-rpc, rpc
Jsonrpcserver
Process JSON-RPC requests in Python
Stars: ✭ 126 (+687.5%)
Mutual labels:  json-rpc, rpc
Jrpc
JSON-RPC implementation in C++17
Stars: ✭ 113 (+606.25%)
Mutual labels:  json-rpc, rpc
server
Implement the JSON-RPC 2.0 server specification for @laravel.
Stars: ✭ 154 (+862.5%)
Mutual labels:  json-rpc, rpc
Ether1
Official Go implementation of The Etho Protocol
Stars: ✭ 41 (+156.25%)
Mutual labels:  json-rpc, rpc
JsonRpc.Standard
An asynchronous .NET Standard library for JSON RPC client & server implementation.
Stars: ✭ 27 (+68.75%)
Mutual labels:  json-rpc, rpc
aiohttp-rpc
A simple JSON-RPC for aiohttp
Stars: ✭ 22 (+37.5%)
Mutual labels:  json-rpc, rpc
coreipc
WCF-like service model API for communication over named pipes and TCP. .NET and node.js clients.
Stars: ✭ 22 (+37.5%)
Mutual labels:  json-rpc, rpc
Remote Function
Make function calls to remote hosts seamlessly
Stars: ✭ 95 (+493.75%)
Mutual labels:  json-rpc, rpc
Rpc
Simple RPC style APIs with generated clients & servers.
Stars: ✭ 192 (+1100%)
Mutual labels:  json-rpc, rpc
xmlrpcwsc-dotnet
XML-RPC Web Service Client C# implementation
Stars: ✭ 30 (+87.5%)
Mutual labels:  json-rpc, rpc
angular6-httpclient-example
Angular 6 HttpClient: Consume RESTful API Example
Stars: ✭ 38 (+137.5%)
Mutual labels:  httpclient
trellio
Python3 asyncio based microframework for microservice architecture
Stars: ✭ 19 (+18.75%)
Mutual labels:  rpc

Spooky

What is Spooky?

Short description: A Json RPC 2.0 client library for .Net.

Long Description: Spooky is two things;

  1. A portable, async-await based, .Net abstraction for RPC clients.
  2. An implementation of the Json RPC 2.0 specification over HTTP (using HttpClient) fitting that abstraction.

Basically Spooky lets you make Json RPC calls, and could theoretically be extended to work with XML-RPC, future Json RPC versions and other similar systems without altering dependant systems. Because the Json RPC implementation uses HttpClient for transport, it supports injecting message handlers into the HTTP pipeline. This allows support for HTTP based authentication/authorisation, compression, retry logic etc. (assuming the server is also compatible with those features).

The transport, serialization and client layers are all separate, so while Json RPC over HTTP is supported out of the box, implementing it over sockets or another network protocol should be relatively simple and self-contained. By relying on the abstraction, clients are protected from changing requirements at the network or serialization layers, and could even choose those at runtime.

GitHub license

Supported Platforms

Currently;

  • .Net Framework 4.0+
  • Net Standard 1.1
  • Xamarin.iOS
  • Xamarin.Android
  • WinRT (Windows Store Apps 8.1)
  • UWP 10+ (Windows 10 Universal Programs)

Build Status

Build status

How do I use Spooky?

We got your samples right here

Install the relevant Nuget package.

If you just want the abstraction layer to write your own implementation against, try;

PM> Install-Package Spooky

If you want to do Json RPC (2.0) do this;

PM> Install-Package Spooky.Json20

Once the package is installed, add a using for the Spooky.Json20 namespace;

using Spooky.Json20;

Then create an client and call the Invoke method to start making remote calls. The following sample calls a remote add procedure passing two arguments by name, a and b. Both named and positional arguments are supported. For positional arguments use an object array or the overload that takes params object[]. For named arguments pass a dictionary as shown in this sample.

    var client = new Spooky.Json20.JsonRpcHttpClient(new Uri("http://www.myserver.com/mathservice"));
    var answer = await client.Invoke<int>
    (
	    "add", 
	    new Dictionary<string, object>()
	    {
    		{ "a", 4 },
	    	{ "b", 6 }
	    }
    ).ConfigureAwait(false);

That's it, you've made your first successful RPC call!

NuGet Badge

Server Implementation

Spooky doesn't even attempt to provide a server implementation. If you want to implement a server in .Net, try the awesome Jayrock library.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].