Releases: pojntfx/panrpc
Releases · pojntfx/panrpc
v0.9.2
v0.9.1
feat: Add graceful shutdown examples to Go TCP servers Signed-off-by: Felicitas Pojtinger <felicitas@pojtinger.com>
v0.9.0
chore: Bump release version Signed-off-by: Felicitas Pojtinger <felicitas@pojtinger.com>
v0.8.2
Bug Fixes
- Use correct license in NPM package (Felicitas Pojtinger)
Chores
- Bump GitHub action versions (Felicitas Pojtinger)
release-main
fix: Use correct license in NPM package
v0.8.1
Chores
- Bump version (Felicitas Pojtinger)
v0.8.0
Features
- Introduce per-
Link*()
hooks to Go and TypeScript versions that allow associating a specific call toLink*()
with aremoteID
(Felicitas Pojtinger) - Add GJS + Soup boilerplate replicating the panrpc web example using GTK4 (Felicitas Pojtinger)
Documentation
- Add comments to serialization/deserialization boilerplate, link to other transport/serializer examples in README directly after boilerplate (Felicitas Pojtinger)
Code Refactoring
- Drop broken GJS example (Felicitas Pojtinger)
Chores
- Bump version (Felicitas Pojtinger)
v0.7.2
Features
- Add simple coffee machine example for TypeScript docs (Felicitas Pojtinger)
- Add closure example to coffee server and client CLI in TypeScript (Felicitas Pojtinger)
- Add Go coffee machine server implementation with streaming support (Felicitas Pojtinger)
- Marshal
undefined
values asnull
instead of omitting them for requests in TypeScript (Felicitas Pojtinger) - Add Go coffee machine client implementation with streaming support (Felicitas Pojtinger)
- Add support for broadcasting coffee machine status to other peers (Felicitas Pojtinger)
- Broadcast coffee machine status to subscribed clients for Go version (Felicitas Pojtinger)
- Broadcast coffee machine status to subscribed clients for TypeScript version (Felicitas Pojtinger)
Bug Fixes
- Add notes on TLS via UNIX support in
purl
(Felicitas Pojtinger) - Use correct paths to Go example sources in tutorial (Felicitas Pojtinger)
Documentation
- Start split into per-language documentation, link library API in reference (Felicitas Pojtinger)
- Add draft of new docs for TypeScript version based on new example services (Felicitas Pojtinger)
- Add TypeScript transport and serializer installation & setup docs (Felicitas Pojtinger)
- Add TypeScript server setup docs and notes on streams conversion boilerplate (Felicitas Pojtinger)
- Add docs for creating a client (Felicitas Pojtinger)
- Add TypeScript docs for calling an RPC exposed by the server from the client (Felicitas Pojtinger)
- Start implementing TypeScript docs for calling an RPC exposed by the client from the server (Felicitas Pojtinger)
- Add TypeScript docs for implementing multicast notifications by calling RPCs provided by the client from the server (Felicitas Pojtinger)
- Add TypeScript docs for passing closures to RPCs and link to example source code at the end of the tutorial (Felicitas Pojtinger)
- Add Go server setup tutorial (Felicitas Pojtinger)
- Add Go client setup tutorial (Felicitas Pojtinger)
- Add Go client TUI setup tutorial (Felicitas Pojtinger)
- Add Go tutorial on how to call RPCs on the client from the server (Felicitas Pojtinger)
- Add Go tutorial on how to pass closures to RPCs (Felicitas Pojtinger)
- Add JSDoc to TypeScript implementation's registry (Felicitas Pojtinger)
- Add JSDoc to TypeScript implementation's registry (Felicitas Pojtinger)
- Add notes on limitations on supported method signatures (Felicitas Pojtinger)
- Re-add shell user prefixes (Felicitas Pojtinger)
- Use SVG-only icon, drop logos and replace them with markup layout (Felicitas Pojtinger)
- Add short introductory paragraphs for each tutorial section (Felicitas Pojtinger)
- Add language icons to ease visual docs navigation (Felicitas Pojtinger)
- Add new overview section (Felicitas Pojtinger)
- Add notes on cancelling/aborting ongoing RPC calls (Felicitas Pojtinger)
Builds
- Add README to generated NPM package (Felicitas Pojtinger)
v0.7.1
Documentation
- Use copy-pasteable command blocks and use modern NPM publish action (Felicitas Pojtinger)
Chores
- Bump TypeScript version (Felicitas Pojtinger)
v0.7.0
Features
- Add support for per-call timeouts by cancelling contexts instead of a global timeout (Felicitas Pojtinger)
- Signal in-progress RPCs of global registry errors (Felicitas Pojtinger)
- Add TCP-based registry for TypeScript (Felicitas Pojtinger)
- Add timeouts powered by
AbortController
to TS version (Felicitas Pojtinger) - Add local and remote contexts to link (Felicitas Pojtinger)
- Add new WebSocket link function based on universal message-based linker (Felicitas Pojtinger)
- Add new TCP link function based on universal message-based linker (Felicitas Pojtinger)
- Add minimal TCP server version for TypeScript bindings (Felicitas Pojtinger)
- Add minimal WebSocket server version for TypeScript bindings (Felicitas Pojtinger)
- Start implementation of registry API that is more in line with the Go implementation (Felicitas Pojtinger)
- Implement real remote ID support, implement
forRemote
semantics from Go in TypeScript, connectonClientConnect
/onClientDisconnect
hooks (Felicitas Pojtinger) - Use new
forRemotes
API in TypeScript websocket client example, use remote IDs in local function implementations (Felicitas Pojtinger) - Port
listen()
/dial
support to WebSocket client and servers respectively (Felicitas Pojtinger) - Port
listen()
/dial
support to TCP client and servers respectively (Felicitas Pojtinger) - Start implementation of TypeScript ltsrpc closure support (Felicitas Pojtinger)
- Start implementation of
reflect-metadata
based remote closure detection through theremoteClosure
decorator (Felicitas Pojtinger) - Start implementation of calling the virtual
CallClosure
RPC from TS version (Felicitas Pojtinger) - Add global abort signal for Go closures that are passed to the TS version (Felicitas Pojtinger)
- Start implementation of closure manager skeleton (Felicitas Pojtinger)
- Implement full TypeScript closure manager and closure garbage collector (Felicitas Pojtinger)
- Add basic weron support to
purl
CLI (Felicitas Pojtinger) - Implement per-closure context-based lifecycles for Go implementation (Felicitas Pojtinger)
- Implement per-closure signal-based lifecycles for TypeScript implementation (Felicitas Pojtinger)
- Add CBOR and JSON support to
purl
(Felicitas Pojtinger) - Add stream-based read function and use pipes to invert from messages to streams (Felicitas Pojtinger)
- Handle closing streams for both reads and writes, use empty chain instead of empty stream transform, port TCP examples to new stream-based link function, fix call promise response (Felicitas Pojtinger)
- Port TypeScript WebSocket client and server to new stream-based API (Felicitas Pojtinger)
- Add plain encoding/decoding to TypeScript examples, make intra-TS versions compatible (Felicitas Pojtinger)
- Add TypeScript implementation of throughput client, drop
p.parser
based implementation completely (Felicitas Pojtinger) - Swap out JSON encoding with CBOR for TypeScript until a viable streaming JSON encoder/decoder exists (Felicitas Pojtinger)
- Add ability to switch between JSON and CBOR encoding in TypeScript version throughput benchmark (Felicitas Pojtinger)
- Port all remaining TypeScript examples to streaming JSON encoders (Felicitas Pojtinger)
- Add TypeScript RPS benchmark client implementation (Felicitas Pojtinger)
- Add TypeScript RPS benchmark server implementation (Felicitas Pojtinger)
- Use
Writeable
andPassThrough
instead ofTransform
streams (Felicitas Pojtinger) - Start migration to WhatWG stream API in registry (Felicitas Pojtinger)
- Port all examples to WhatWG streams compatibility layer (Felicitas Pojtinger)
- Implement
Readable
/Writable
-free CBOR encoder/decoder (Felicitas Pojtinger) - Add backpressure support to CBOR version for Readable and Writable (Felicitas Pojtinger)
- Add backpressure support to JSON version for Readable (Felicitas Pojtinger)
- Add support for WhatWG stream JSON encoding/decoding for all TCP examples (Felicitas Pojtinger)
- Add support for WhatWG stream CBOR encoding/decoding for TCP example (Felicitas Pojtinger)
- Add support for WhatWG stream JSON & CBOR encoding/decoding for all TCP benchmarks (Felicitas Pojtinger)
- Add TypeScript support to benchmarks (Felicitas Pojtinger)
- Add TypeScript and Go support for requests/second throughput table (Felicitas Pojtinger)
- Add TypeScript support for throughput benchmark CSV generator (Felicitas Pojtinger)
- Add multi-language support for throughput graph and throughput table renderer (Felicitas Pojtinger)
- Add browser React
panrpc
demo, prefix all demo CLIs (Felicitas Pojtinger) - Add pipe-based stdin/stdout example to Go (Felicitas Pojtinger)
- Add UNIX server and client examples to Go implementation (Felicitas Pojtinger)
- Add UNIX socket support to
purl
(Felicitas Pojtinger) - Add
stdin
/stdout
transport layer support to TypeScript implementation, useSIGHUP
andSIGUSR2
to handle inputs forstdin
/stdout
demos instead of manually passing signal numbes (Felicitas Pojtinger) - Add UNIX server and client examples to TypeScript implementation (Felicitas Pojtinger)
- Port callback demos to TypeScript version (Felicitas Pojtinger)
Bug Fixes
- Use ES6 class methods to prevent broken
this
references, exit after close event in TCP TS example (Felicitas Pojtinger) - Drop debug logging fo...