Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
88 commits
Select commit Hold shift + click to select a range
87f6e68
Merge branch 'main' into feature/tether3
anselanza Mar 12, 2025
5bf1dc5
two-part order first tests passing
anselanza Mar 12, 2025
137d9cb
all TS tests pass
anselanza Mar 13, 2025
cc6e370
nodejs example adapted
anselanza Mar 13, 2025
a2bc456
resolve vite build disconnections
anselanza Mar 13, 2025
7a3dbeb
First attempt at rewriting Rust Base Agent, most tests not yet passing
anselanza Apr 3, 2025
420a349
Can run tests without connection; two-part plugs still problematic
anselanza Apr 4, 2025
1cdb670
all Rust tests pass
anselanza Apr 4, 2025
4a0e737
Remove unused utils, tether-utils in root
anselanza Apr 4, 2025
31460ce
new logo and workspace fixes
anselanza Apr 4, 2025
feb4759
new Channel terminology, TS tests do not need connection
anselanza Apr 4, 2025
180e9e6
absolutely no mention of the word "plug" in TS
anselanza Apr 4, 2025
60408cb
NodeJS example adapted for "channel"
anselanza Apr 4, 2025
a886201
Renamed for Channels in Rust Base Agent
anselanza Apr 4, 2025
49e0c58
Renamed "rs" to "rust" and moved Rust examples
anselanza Apr 8, 2025
b863ebc
Extensive new documentation, using "send" and "receive" instead of "p…
anselanza Apr 8, 2025
3868f8c
Send and Receive not Publish/Output or Subscribe/Input
anselanza Apr 8, 2025
08e9e1f
Tether Utils CLI updated and tested with new Agent
anselanza Apr 8, 2025
f797901
Tether 4, not 3. Why not.
anselanza Apr 8, 2025
f06c1d9
v4
anselanza Apr 8, 2025
9986329
Rust Base Agent README includes updated examples
anselanza Apr 8, 2025
b4e0875
JS Base Agent README
anselanza Apr 8, 2025
5e5791c
React example updated
anselanza Apr 8, 2025
608155a
basic Svelte TS example working
anselanza Apr 8, 2025
4b5609c
"lib" instead of "base agent"
anselanza Apr 9, 2025
d6dca8e
cargo workspaces references to lib
anselanza Apr 9, 2025
7409afe
tether-utils alpha version
anselanza Apr 9, 2025
4748ed5
preparing for JS alpha publish
anselanza Apr 9, 2025
3ff0746
tether-utils should never mention "plug"
anselanza Apr 9, 2025
0229a83
tether-utils fixes parsing of topic parts
anselanza Apr 9, 2025
cdb9947
JS version provides an optionally-type encodeAndSend function
anselanza Apr 9, 2025
61c4126
NodeJS TypeScript example
anselanza Apr 9, 2025
76ae243
Buffer problems not quite resolved, but typed ChannelSender is great
anselanza Apr 9, 2025
01aa182
POC typed receivers
anselanza Apr 9, 2025
fcac748
try to standardize typed and auto-encode/auto-decode send/receive met…
anselanza Apr 9, 2025
34e3d3d
tether-utils now uses new .send
anselanza Apr 9, 2025
10fe9e7
simplified NodeJS example, no decode/encode needed
anselanza Apr 10, 2025
f7a24a7
typo in comments
anselanza Apr 10, 2025
f17c678
channels not plugs
anselanza Apr 10, 2025
f86a2b9
more notes
anselanza Apr 11, 2025
8d47fd5
POC: the channel owns an Rc ref to the Tether Agent, which means it can
anselanza Apr 11, 2025
abb885d
Event better: no need for Rc, just ref with lifetime
anselanza Apr 11, 2025
00275eb
Restructured sender module for ChannelSender, demo auto-encoding (but
anselanza Apr 11, 2025
f349e86
POC strictly typed senders
anselanza Apr 11, 2025
97d27a6
Enable some agent-level sending/publishing as well, for convenience
anselanza Apr 11, 2025
3508025
POC: typed receiver that can auto-subscribe; but not emit messages (yet)
anselanza Apr 11, 2025
96fc7d7
POC: the ChannelReceiver checks and parses messages, "emitting" any m…
anselanza Apr 11, 2025
eae9628
demonstrate multiple matches
anselanza Apr 11, 2025
04dd158
WIP must make OptionsBuilder work again
anselanza Apr 11, 2025
503674f
When creating via OptionsBuilder, borrow checking is again a problem …
anselanza Apr 14, 2025
b332e68
Creating Definitions separately from Channels
anselanza Apr 14, 2025
a075f12
options to construct Channels with name only or with proper definitio…
anselanza Apr 14, 2025
64bdbdf
avoiding double-naming modules
anselanza Apr 14, 2025
871ad6c
WIP trying automatic check messages ON channel
anselanza Apr 14, 2025
16c80f3
Channel Senders are not properly typed (compiler does not catch errors)
anselanza Apr 17, 2025
7ed5a7d
Sending channels are properly type-checked
anselanza Apr 17, 2025
c617d09
Removed a lot of redundancy between "definitions", "channels" and th…
anselanza Apr 17, 2025
af88504
Following the logic of the Rust library, allow option to create chann…
anselanza Apr 17, 2025
df6d498
Examples updated for shorter Channel creation functions, also support…
anselanza Apr 17, 2025
a79446e
updated some notes, minor Svelte example import fixes
anselanza Apr 17, 2025
ae2a759
Demonstrating owned channels for TS
anselanza Apr 17, 2025
ca09c1c
changing "create" to "get"
anselanza Apr 17, 2025
373a9e3
notes
anselanza Apr 17, 2025
978f96e
Merge branch 'feature/owned-channels' into feature/tether4
anselanza Apr 17, 2025
d96dd2d
Lots of Rust lib tests reinstated, pass now
anselanza Apr 17, 2025
cd1b96d
WIP some channels/mod.rs tests
anselanza Apr 17, 2025
6a1750e
ChannelDef and ChannelDefBuilder terminology more appropriate
anselanza Apr 18, 2025
012efd3
notes on Semver
anselanza Apr 18, 2025
09659a8
Consistent create_with_def, more notes on Tether4
anselanza Apr 18, 2025
3ba5d40
Rust 4.1.0-alpha features many ergonomic improvements
anselanza Apr 18, 2025
8fdb43d
QoS in definitions is proper QoS
anselanza Apr 18, 2025
c64b423
Tether Utils with direct client.subscribe in order to bypass typed me…
anselanza Apr 18, 2025
723cad5
reinstated unit tests
anselanza Apr 18, 2025
0cba849
publishing alpha 4.2
anselanza Apr 18, 2025
bf36047
tether-utils alpha
anselanza Apr 18, 2025
c6423a7
Merge branch 'feature/tether4-untyped-channels' into feature/tether4
anselanza Apr 18, 2025
a528222
Allow QoS to derive Serialize/Deserialize via remote crate, so Channe…
anselanza Apr 18, 2025
1ab9a60
use QoS enum throughout, not u8
anselanza Apr 18, 2025
d62027c
v4.2.1-alpha allows ChannelDefs to be serialized/deserialiized, uses …
anselanza Apr 18, 2025
67627c0
Tether Utils using updated alpha Tether Agent
anselanza Apr 18, 2025
aaa3e6a
Senders and Receivers never retain refs to Tether Agent
anselanza Apr 24, 2025
58829dc
carefully distinguish lifetimes for Receivers
anselanza Apr 24, 2025
75ea062
tether-utils update
anselanza Apr 24, 2025
4e2602e
tether-utils must not assume ID is "any"
anselanza May 7, 2025
0e024f8
updated notes
anselanza May 7, 2025
b21116f
Merge branch 'feature/non-owned-channels' into feature/tether4
anselanza May 7, 2025
01d1e6e
pass only AgentConfig, not entire Tether Agent, when building Channels
anselanza May 9, 2025
a26b99a
ready to publish tether-utils
anselanza May 9, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/npm-publish-github-packages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ jobs:
node-version: 16
- name: install
run: npm install
working-directory: base_agent/js
working-directory: lib/js
- run: npm run build
working-directory: base_agent/js
working-directory: lib/js

publish-gpr:
needs: build
Expand All @@ -35,8 +35,8 @@ jobs:
node-version: 16
registry-url: https://npm.pkg.github.com/
- run: npm i
working-directory: base_agent/js
working-directory: lib/js
- run: npm publish
working-directory: base_agent/js
working-directory: lib/js
env:
NODE_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}
16 changes: 8 additions & 8 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
[submodule "base_agent/cpp/libs/paho.mqtt.cpp"]
path = base_agent/cpp/libs/paho.mqtt.cpp
[submodule "lib/cpp/libs/paho.mqtt.cpp"]
path = lib/cpp/libs/paho.mqtt.cpp
url = https://github.com/eclipse/paho.mqtt.cpp.git
[submodule "base_agent/cpp/libs/paho.mqtt.c"]
path = base_agent/cpp/libs/paho.mqtt.c
[submodule "lib/cpp/libs/paho.mqtt.c"]
path = lib/cpp/libs/paho.mqtt.c
url = https://github.com/eclipse/paho.mqtt.c.git
[submodule "base_agent/cpp/libs/msgpack"]
path = base_agent/cpp/libs/msgpack
[submodule "lib/cpp/libs/msgpack"]
path = lib/cpp/libs/msgpack
url = https://github.com/msgpack/msgpack-c.git
[submodule "base_agent/cpp/libs/json"]
path = base_agent/cpp/libs/json
[submodule "lib/cpp/libs/json"]
path = lib/cpp/libs/json
url = git@github.com:nlohmann/json.git
39 changes: 22 additions & 17 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"cargo": {
"args": [
"test", "--no-run", "--lib",
"--manifest-path", "${workspaceFolder}/base_agent/rs/Cargo.toml"
"--manifest-path", "${workspaceFolder}/lib/rust/Cargo.toml"
], // Cargo command line to build the debug target
// "args": ["build", "--bin=foo"] is another possibility
// "filter": { // Filter applied to compilation artifacts (optional)
Expand All @@ -25,11 +25,10 @@
"type": "lldb",
"request": "launch",
"name": "Debug Tether Utils",
// "cwd": "${workspaceFolder}/utilities/tether-utils",
"cargo": {
"args": [
"build",
"--manifest-path", "${workspaceFolder}/utilities/tether-utils/Cargo.toml"
"--manifest-path", "${workspaceFolder}/tether-utils/Cargo.toml"
]
},
"args": ["receive", "--plug.role=custom"]
Expand All @@ -41,20 +40,26 @@
"skipFiles": [
"<node_internals>/**"
],
"type": "pwa-node"
"type": "node"
},
{
"type": "pwa-node",
"request": "launch",
"name": "Launch Program",
"skipFiles": [
"<node_internals>/**"
],
"program": "${workspaceFolder}/src/index.ts",
"preLaunchTask": "tsc: build - tsconfig.json",
"outFiles": [
"${workspaceFolder}/dist/**/*.js"
]
}
{
"name": "Debug NodeJS Base Agent Tests",
"type": "node",
"request": "launch",
"runtimeExecutable": "${workspaceRoot}/lib/js/node_modules/.bin/jest",
"args": [
"${fileBasenameNoExtension}",
"--runInBand",
"--watch",
"--coverage=false",
"--no-cache"
],
"cwd": "${workspaceRoot}/lib/js",
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen",
"sourceMaps": true,

}

]
}
4 changes: 2 additions & 2 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -92,8 +92,8 @@
},
"cmake.configureOnOpen": false,
"rust-analyzer.linkedProjects": [
"${workspaceFolder}/base_agent/rs/Cargo.toml",
"${workspaceFolder}/utilities/tether-utils/Cargo.toml"
"${workspaceFolder}/lib/rust/Cargo.toml",
"${workspaceFolder}/tether-utils/Cargo.toml"
],
"pylint.importStrategy": "fromEnvironment"
}
Loading
Loading