Looking for collaborators: Scala JSON-RPC library

Skip to first unread message

Nathan Fischer

Sep 23, 2019, 8:34:21 PM9/23/19
I'm working on a JSON-RPC library for Scala and am currently in the design phase. I'm looking for collaborators to brainstorm and test ideas with.

The goal of the library is to be the interface between a transport implementation and application logic. Some of the guiding objectives are
  • Open source and free license
  • Allow for swappable transports
  • Allow for swappable JSON libraries
  • Be practical when transport layer details leak (eg. user ID from HTTP auth request header needs to be available to logic code but isn't in the params section of the request)
  • Be usable without code generation (especially client)
  • Eventually support code generation from OpenRPC specs
I'm currently planning to implement MQTT as the first transport, with HTTP and websockets following. If you're interested in writing any of those transports after the core library is finished then let me know and I can keep you posted.

If you have interest/comments/questions/concerns please do reply here or contact me directly!

yo frankie

Sep 27, 2019, 6:19:59 PM9/27/19
Hello Nathan!
The same I'm doing and also in design phase))
Let's pick time and discuss

Are going to implement library in fp scala (using tagless final, cats)?

вторник, 24 сентября 2019 г., 5:34:21 UTC+5 пользователь Nathan Fischer написал:

Nathan Fischer

Sep 27, 2019, 8:59:50 PM9/27/19
Hey Frankie,

I'll message you directly to set a time.

I'm looking for things to be generally functional but not so forcefully so that it becomes inaccessible to some.
I'm using cats to abstract out the side effect/async type so that things can work with future or IO or whatever. I have type-classes for going from models to JSON so that the end user can just import a support object for whatever JSON library they're already using.

Geeenerally speaking I want things to be as compile-safe as possible while remaining pragmatic.

Jorge Vicente Cantero

Jan 20, 2020, 2:53:22 PM1/20/20
In case you're interested, I've created jsonrpc4s https://github.com/jvican/jsonrpc4s

It might serve as an inspiration to build your own library if you haven't already
Message has been deleted

Nathan Fischer

Jan 21, 2020, 1:14:03 PM1/21/20
I'd be interested to check it out. Do you have any documentation or examples for the project?
I've already built https://lightform-oss.github.io/mercury but there are still some things I'd like to improve and refine.

Jorge Vicente Cantero

Jan 21, 2020, 10:02:56 PM1/21/20
I don't have any documentation yet, but we've been using this library in the past to build scalacenter/bloop and scalacenter/bsp infrastructure.

It doesn't fit some of your criteria. It's intentionally relying on jsoniter-scala --a zero-dependency, really fast json library-- and Monix. You project also looks interesting, it's cool to see more people are building their libraries to do JSON-RPC.

- Jorge

Nathan Fischer

Mar 27, 2020, 1:59:41 PM3/27/20
Hopefully they catch on more. It would be nice to see libraries start to be more interoperable with each-other (especially for auth passed in the underlying transport).
I'm always impressed how much faster some json libraries are than others. My motivation for putting the flexibility in the json library is on the modeling side rather than parsing. People tend to have at least some custom logic for going from json to their case classes and it's a pain in the butt to have to write it twice because some dependency doesn't use the same json library as the rest of your code (indeed, json mismatch is often a reason to disqualify adoption of a library).

~ Nathan

abolfazl azrfebgan

Mar 27, 2020, 4:51:47 PM3/27/20
to json...@googlegroups.com

در تاریخ جمعه, مارچ ۲۷, ۲۰۲۰،‏ ۲۲:۲۹ Nathan Fischer <nat...@lightform.com> نوشت:
You received this message because you are subscribed to the Google Groups "JSON-RPC" group.
To unsubscribe from this group and stop receiving emails from it, send an email to json-rpc+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/json-rpc/f2ca6210-1696-4a72-9a2a-168259760c5b%40googlegroups.com.
Reply all
Reply to author
0 new messages