Skip to content

Commit 074fb87

Browse files
committed
Update readme
1 parent e168783 commit 074fb87

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

README.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,27 @@ override def ivyDeps = super.ivyDeps() ++ Agg(ivy"tech.neander::jsonrpclib-fs2::
3939
**/!\ Please be aware that this library is in its early days and offers strictly no guarantee with regards to backward compatibility**
4040

4141
See the modules/examples folder.
42+
43+
## Smithy Integration
44+
45+
You can now use `jsonrpclib` directly with [Smithy](https://smithy.io/) and [smithy4s](https://disneystreaming.github.io/smithy4s/), enabling type-safe,
46+
schema-first JSON-RPC APIs with minimal boilerplate.
47+
48+
This integration is supported by the following modules:
49+
50+
```scala
51+
// Defines the Smithy protocol for JSON-RPC
52+
libraryDependencies += "tech.neander" % "jsonrpclib-smithy" % <version>
53+
54+
// Provides smithy4s client/server bindings for JSON-RPC
55+
libraryDependencies += "tech.neander" %%% "jsonrpclib-smithy4s" % <version>
56+
```
57+
58+
With these modules, you can:
59+
60+
- Annotate your Smithy operations with `@jsonRpcRequest` or `@jsonRpcNotification`
61+
- Generate client and server interfaces using smithy4s
62+
- Use ClientStub to invoke remote services over JSON-RPC
63+
- Use ServerEndpoints to expose service implementations via FS2Channel
64+
65+
This allows you to define your API once in Smithy and interact with it as a fully typed JSON-RPC service—without writing manual encoders, decoders, or dispatch logic.

0 commit comments

Comments
 (0)