[racket] json-rpc (was: Re: Racket and .NET)

From: Greg Hendershott (greghendershott at gmail.com)
Date: Wed Jun 22 17:42:09 EDT 2011

I had a similar thought, although my first idea was simply a RESTful
string like "function?Param=Val&Parm2=Val2".

I also thought it would be nifty to have a `define/contract' variant
that would return a wrapper that takes the query params string,
unpacks it into the procedure args, raises an exception for any
problems (I'm sorry but string->number can't make "A" into a number),
applies them to the contracted proc, and returns the value to the

And you could use this wrapper in an actual HTTP server, or with some
other transport.

Then I thought it would be nifty to have a number of `define/contract'
variants, each of which marshals to things such as:
- Query param strings as just mentioned
- json-rpc
- xml-rpc
- current-command-line-arguments
- The latest COM/.NET flavor of hoohah
- Some sort of "reverse FFI" whereby Racket could be used to create
libs as well as use them.

Admittedly grand unified theory moods can be sirens. But if someone
could help with the harder (for me) macro and contract-parsing guts,
providing a framework into which that someone like me could plug in
various specific marshals, then someone like me would try to create,
test and share some.

On Wed, Jun 22, 2011 at 12:46 PM, John Clements
<clements at brinckerhoff.org> wrote:
> On Jun 22, 2011, at 9:21 AM, Grant Rettke wrote:
>> 2011/6/22 Thomas Chust <chust at web.de>:
>>>  *  Use interprocess or network communication to connect a Racket
>>>     program and a .NET program.
>> Anybody used something like this before? Sounds like an interesting
>> enough problem that there ought to be an existing solution already
>> that doesn't involve SOAP or REST or JSON.
> Tangentially related; am I right in thinking that
> a) there's no json-rpc library in PLaneT, and
> b) such a lib would be pretty easy to implement, and
> c) such a lib would probably be the most sensible way to communicate in a language-neutral way between machines?
> John
> _________________________________________________
>  For list-related administrative tasks:
>  http://lists.racket-lang.org/listinfo/users

Posted on the users mailing list.