Releases: pojntfx/panrpc
Releases · pojntfx/panrpc
v0.6.1
Bug Fixes
- Include
dist
in built NPM package (Felicitas Pojtinger)
v0.6.0
Features
- Add packet-based/Frisbee API to
Link()
#1 (Felicitas Pojtinger) - Introduce two separate request/response Frisbee operations #1 (Felicitas Pojtinger)
- Introduce reflection call wrapper to prevent panics on partially sent Dudirekta messages #1 (Felicitas Pojtinger)
- Add stream-based protocol based on the new message-based protocol (Felicitas Pojtinger)
- Start development of Redis example (Felicitas Pojtinger)
- Implement stream reads for Redis example (Felicitas Pojtinger)
- Add Redis stream transport demo (Felicitas Pojtinger)
- Start implementation of throughput benchmarks (Felicitas Pojtinger)
- Add jsoniter-based serializer to benchmark (Felicitas Pojtinger)
- Add CBOR and MessagePack serializers to benchmark (Felicitas Pojtinger)
- Use custom broadcaster for response resolution, enable processing non-resolved responses (Felicitas Pojtinger)
- Add throughput benchmark (Felicitas Pojtinger)
- Add all data types to RPS benchmark (Felicitas Pojtinger)
- Start implementation of TypeScript port for dudirekta-example-websocket-client.ts (Felicitas Pojtinger)
- Implement new Dudirekta protocol in TS (Felicitas Pojtinger)
- Add 1:1 port of WebSocket Go client example for TS (Felicitas Pojtinger)
- Add support for timing out calls in JS version (Felicitas Pojtinger)
- Allow using special nested encoding function for arguments and return values (Felicitas Pojtinger)
- Allow using special nested encoding function for requests, responses and messages (Felicitas Pojtinger)
- Implemented flat transcoder for TypeScript version, implement separate tests for flat and nested transcoding (Felicitas Pojtinger)
- Add simple universal function caller/
curl
equivalent (Felicitas Pojtinger) - Add call timeouts to
durl
(Felicitas Pojtinger) - Allow
listen
ing server-to-client RPC calls fordurl
(Felicitas Pojtinger) - Add WebSocket support to
durl
(Felicitas Pojtinger) - Enable TLS listen and dial support for TCP and WebSocket
durl
(Felicitas Pojtinger) - Implement positional arguments, rework
durl
CLI (Felicitas Pojtinger) - Make tests scriptable by terminating after
n
runs (Felicitas Pojtinger) - Add benchmark script for RPS (Felicitas Pojtinger)
- Add graph and table result renderers for RPS benchmark (Felicitas Pojtinger)
- Add graph renderers for throughput benchmark (Felicitas Pojtinger)
- Add table renderers for throughput benchmark (Felicitas Pojtinger)
- Use new protocol examples and terminology in protocol overview (Felicitas Pojtinger)
Bug Fixes
- Copy the incoming bytes into a separate buffer instead of sending reference since Frisbee modifies it #1 (Felicitas Pojtinger)
- Buffer error channel in registry to prevent deadlock if both
readRequest
andreadResponse
return at the same time #1 (Felicitas Pojtinger) - Ensure that protocol violations inside of RPCs created with
MakeFunc
don't lead to runtime panics (Felicitas Pojtinger)
Documentation
- Add notes on installing
durl
, start adding notes on new serialization-independent framework and add notes on new generics (Felicitas Pojtinger) - Use new
ForRemotes
callback (Felicitas Pojtinger) - Add new examples to examples index (Felicitas Pojtinger)
- Add notes on differences between stream and message-oriented APIs in tutorial and overview section (Felicitas Pojtinger)
Code Refactoring
- Remove dependency on
encoding/json
, use struct- instead of array-based wire format #1 (Felicitas Pojtinger) - Decompose Frisbee server and dialer (Felicitas Pojtinger)
- Use broadcaster with delivery guarantee (Felicitas Pojtinger)
- Drop Frisbee (Felicitas Pojtinger)
- Use explicit JSON keys for stream-oriented API (Felicitas Pojtinger)
- Switch to callback-based API for registry, drop direct lock-free access to remotes map (Felicitas Pojtinger)
- Make
linkWebSocket
synchronous, drop automatic reconnects (Felicitas Pojtinger) - Decompose request, message and response marshalling and unmarshalling (Felicitas Pojtinger)
- Switch to JSON for TCP client/server example (Felicitas Pojtinger)
- Drop separate nested encode/decode functions while still allowing for embedded fragments, strongly type encoder/decoder (Felicitas Pojtinger)
- Use new nested encoding API (Felicitas Pojtinger)
- Port RPS server and client to new nested encode/decode API (Felicitas Pojtinger)
- Port throughput server and client to new nested encode/decode API (Felicitas Pojtinger)
Tests
- Add unit tests for messages, requests and responses (Felicitas Pojtinger)
Builds
- Port TypeScript library to bun APIs (Felicitas Pojtinger)
- Add Makefile, Hydrun config and GitHub action for
durl
(Felicitas Pojtinger) - Disable
js/wasm
target (Felicitas Pojtinger)