vrpc 3.0.0-alpha.1 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +63 -2
- package/LICENSE +1 -1
- package/README.md +12 -15
- package/browser/vrpc.js +1 -1
- package/package.json +8 -5
- package/vrpc/VrpcAdapter.js +234 -161
- package/vrpc/VrpcAgent.js +25 -18
- package/vrpc/VrpcClient.js +305 -289
- package/vrpc/VrpcNative.js +25 -2
- package/vrpc/adapter.hpp +4 -2
- package/vrpc/addon.cpp +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,9 +5,70 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
|
|
6
6
|
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
-
## [3.0.
|
|
8
|
+
## [3.0.1] - Jan 24 2022
|
|
9
9
|
|
|
10
|
-
###
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- non-functional event un-subscription on silent client disconnect and when
|
|
13
|
+
initially registered via `callAll`
|
|
14
|
+
|
|
15
|
+
## [3.0.0] - Jan 20 2022
|
|
16
|
+
|
|
17
|
+
### Added
|
|
18
|
+
|
|
19
|
+
- `vrpcOn` / `vrpcOff` feature to client
|
|
20
|
+
- tests exclusively for VrpcAdapter
|
|
21
|
+
- support for `path.join(__dirname, <path>)` expressions when registering class
|
|
22
|
+
|
|
23
|
+
### Fixed
|
|
24
|
+
|
|
25
|
+
- unhandled promise rejection on initial connect timeout
|
|
26
|
+
- missing documentation for VrpcNative
|
|
27
|
+
- bug on new `vrpcOn` feature
|
|
28
|
+
- bug while unregister event listeners via "off" or "removeAllListeners"
|
|
29
|
+
|
|
30
|
+
### Changed
|
|
31
|
+
|
|
32
|
+
- error messages as triggered on remote agents (now include context info)
|
|
33
|
+
- removed obsolete public API from VrpcAdapter
|
|
34
|
+
- internal handling of EventEmitter subscriptions
|
|
35
|
+
- now publishing a single message per event to a fixed topic
|
|
36
|
+
- dispatching happens by the broker not by the agent anymore
|
|
37
|
+
- this saves a lot of traffic when many clients subscribe to same events
|
|
38
|
+
- reduced size of response messages by skipping redundant information
|
|
39
|
+
- order of items within RPC message
|
|
40
|
+
- promise rejection message as triggered on remote agents (now include context
|
|
41
|
+
info)
|
|
42
|
+
|
|
43
|
+
## [3.0.0-alpha.3] - 25 Nov 2021
|
|
44
|
+
|
|
45
|
+
### Fixed
|
|
46
|
+
|
|
47
|
+
- missing 'create' event in VrpcAdapter
|
|
48
|
+
- respecting isolation state in callAll
|
|
49
|
+
|
|
50
|
+
### Changed
|
|
51
|
+
|
|
52
|
+
- cleaned API and tests from deprecation supports, those will now result in
|
|
53
|
+
errors
|
|
54
|
+
- intercepting return value of EventEmitter functions and changing it from
|
|
55
|
+
potentially gigantic object (as it returns `this`) to `true`
|
|
56
|
+
|
|
57
|
+
## [3.0.0-alpha.2] - 19 Nov 2021
|
|
58
|
+
|
|
59
|
+
### Fixed
|
|
60
|
+
|
|
61
|
+
- leaking event registrations on remote-controlled instance when event consumer
|
|
62
|
+
was not creator of the instance
|
|
63
|
+
|
|
64
|
+
## Changed
|
|
65
|
+
|
|
66
|
+
- reduced payload of callback message by omitting the original return value
|
|
67
|
+
- changed prefix of mqtt client id to `vc3` and `va3`, respectively
|
|
68
|
+
|
|
69
|
+
## [3.0.0-alpha.1] - 10 Nov 2021
|
|
70
|
+
|
|
71
|
+
### Changed
|
|
11
72
|
|
|
12
73
|
- layout and content of this repository, only javascript related code is left
|
|
13
74
|
- naming of public API classes is made consistent
|
package/LICENSE
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (c) 2018 -
|
|
3
|
+
Copyright (c) 2018 - 2022 Dr. Burkhard C. Heisen
|
|
4
4
|
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
package/README.md
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
# VRPC - Variadic Remote Procedure Calls
|
|
2
2
|
|
|
3
|
-
[](https://raw.githubusercontent.com/heisenware/vrpc/master/LICENSE)
|
|
3
|
+
[](https://raw.githubusercontent.com/heisenware/vrpc-js/master/LICENSE)
|
|
5
4
|
[](https://semver.org/spec/v2.0.0.html)
|
|
6
|
-
[](https://github.com/heisenware/vrpc/tag)
|
|
7
|
-
[](http://github.com/heisenware/vrpc/issues)
|
|
8
|
-

|
|
5
|
+
[](https://github.com/heisenware/vrpc-js/tag)
|
|
6
|
+
[](http://github.com/heisenware/vrpc-js/issues)
|
|
7
|
+

|
|
9
8
|
|
|
10
9
|
## Visit our website: [vrpc.io](https://vrpc.io)
|
|
11
10
|
|
|
@@ -16,22 +15,20 @@ VRPC - Variadic Remote Procedure Calls - is an enhancement of the old RPC
|
|
|
16
15
|
written in any programming language by functions written in any other (or the
|
|
17
16
|
same) programming language. Unlike RPC, VRPC furthermore supports:
|
|
18
17
|
|
|
19
|
-
- non-intrusive adaption of existing code, making it remotely
|
|
18
|
+
- non-intrusive adaption of existing code, making it callable remotely
|
|
20
19
|
- remote function calls on many distributed receivers at the same time (one
|
|
21
20
|
client - multiple agents)
|
|
22
21
|
- service discovery
|
|
23
22
|
- outbound-connection-only network architecture (using MQTT technology)
|
|
24
|
-
- isolated (multi-tenant) and shared access modes to
|
|
25
|
-
resources
|
|
23
|
+
- isolated (multi-tenant) and shared access modes to remote resources
|
|
26
24
|
- asynchronous language constructs (callbacks, promises, event-loops)
|
|
27
25
|
- OOP (classes, objects, member functions) and functional (lambda) patterns
|
|
28
26
|
- exception forwarding
|
|
29
27
|
|
|
30
28
|
VRPC is available for an entire spectrum of programming technologies including
|
|
31
|
-
embedded
|
|
32
|
-
etc.), and web (Javascript, React, etc.) technologies.
|
|
29
|
+
embedded, data-science, and web technologies.
|
|
33
30
|
|
|
34
|
-
As a robust and highly performing communication system it can build the
|
|
31
|
+
As a robust and highly performing communication system, it can build the
|
|
35
32
|
foundation of complex digitization projects in the area of (I)IoT or
|
|
36
33
|
Cloud-Computing.
|
|
37
34
|
|
|
@@ -39,10 +36,10 @@ Cloud-Computing.
|
|
|
39
36
|
|
|
40
37
|
Understand how to use it by looking at the examples:
|
|
41
38
|
|
|
42
|
-
- [Agent Example](examples/agent/README.md)
|
|
43
|
-
- [Client Example](examples/client/README.md)
|
|
44
|
-
- [Simple C++ Embedding Example](examples/
|
|
45
|
-
- [Advanced C++ Embedding Example](examples/
|
|
39
|
+
- [Agent Example](examples/01-agent/README.md)
|
|
40
|
+
- [Client Example](examples/02-client/README.md)
|
|
41
|
+
- [Simple C++ Embedding Example](examples/03-native-simple/README.md)
|
|
42
|
+
- [Advanced C++ Embedding Example](examples/04-native-advanced/README.md)
|
|
46
43
|
|
|
47
44
|
Get all the details by reading the documentation:
|
|
48
45
|
|