Commit Graph

358 Commits

Author SHA1 Message Date
R Tyler Croy c83e31ff04 Start sketching out what the manifest and invocation file formats are going to be 2020-10-18 13:34:14 -07:00
R Tyler Croy ab5cc9d89f Extend the manifest a bit more to act more like a packaging manifest
As I was thinking about this more, I was thinking that this might be best to act
like a gemspec too, so that Otto tooling can package up the step library
artifact (.tar.gz) properly based off just the manifest.yml
2020-10-18 13:34:14 -07:00
R Tyler Croy 6ab574560e Implement the sh-step as an example for how step libraries might work
The packaging isn't there yet, but at least the scaffolding of how the native
steps will be invoked is here.
2020-10-18 13:34:11 -07:00
R Tyler Croy 57f002a58d
Merge pull request #28 from rtyler/eventbus-take-two
Just landing some WIP eventbus nonsense
2020-10-18 13:26:37 -07:00
R Tyler Croy d5cb28ef2e Checkpointing some work in progress 2020-10-16 20:47:21 -07:00
R Tyler Croy 1c8b7fecb1 Refactor some of the integration test code to make wrapping meows::Envelope easier 2020-07-05 14:39:41 -07:00
R Tyler Croy 8981161bc6 cargo fmt 2020-07-05 13:43:49 -07:00
R Tyler Croy 0398e168c4 Refactoring the integration tests a bit to allow for more complex behaviors
The `register-subscribe.rs` test is still not fully implemented on the test nor
the server-side, but at least now the test scaffolding is working well.
2020-07-05 13:42:38 -07:00
R Tyler Croy 13abfb329a Implement registration tracking inside the in-memory eventbus
This is still _super_ primitive but at least demonstrates some simple client
tracking with the recent features added to meows. This will ensure that the
eventbus can also _push_ events to the registered clients
2020-07-04 15:15:24 -07:00
R Tyler Croy 743b349d20 Implement a simplistic test for register/registered message ping pong
This is the first end-to-end test of the client/server approach using meows for
the message exchange. The client is currently only a synchronous Rust client,
but is otherwise "stock" WebSockets.
2020-07-03 16:15:13 -07:00
R Tyler Croy 203fce30d3 Refactor the inmemory server to allow for some better integration testing 2020-06-21 20:13:00 -07:00
R Tyler Croy d4c2007006 Refactoring the inmemory eventbus into its own crate in the workspace
This helps eventbus stay a simple library that must be implemented by others
2020-06-21 14:40:50 -07:00
R Tyler Croy 649edcc1c0 Re-introduce the eventbus CLI utilities 2020-06-21 13:39:58 -07:00
R Tyler Croy 61f5060e3f Swap Eventbus for Engine to make the trait naming a bit clearer
This will help implementers understand that _they_ must bring the engine to
power the Bus :)
2020-06-21 12:47:16 -07:00
R Tyler Croy cc3885aed5 Refactor the facade around MemoryBus a bit more 2020-06-21 11:36:57 -07:00
R Tyler Croy 2833328138 Checkpointing work in progress: Handling self invocations in bus impls
This introduces the Bus facade which helps work around the issue of invoking
"self" from within these async box blocks
2020-06-21 09:52:04 -07:00
R Tyler Croy 9ec71adff0 cargo update 2020-06-20 11:27:33 -07:00
R Tyler Croy cb7d4af3d5 cargo fmt 2020-06-20 11:24:37 -07:00
R Tyler Croy f548b40177 Incorporate dashmap into the inmemory eventbus
This commit also starts to incorporate meows for handling the websocket messages
that are expected by the eventbus
2020-06-20 11:23:55 -07:00
R Tyler Croy 046fc935c7 WIP 2020-06-15 20:58:48 -07:00
R Tyler Croy 484deeeb36 Exploring the implementation of an Evenbus trait which can be implemented by buses
The goal here is to provide a shim interface that would allow for an
`otto-bus-redis`, and `otto-bus-kafka` and so on. Something that can be abstract
away commit log like behavior from the specific backing store implementation.
2020-06-14 15:52:29 -07:00
R Tyler Croy aec1535cf3 Clean the slate, delete all the old somewhat broken eventbus code
I want to take a fresh look at this now that I have learned much more about Rust
2020-06-14 10:37:55 -07:00
R Tyler Croy c7d01b961c Merge pull request 'Rip out actix and actix-web' (#3) from warp-speed into master
Reviewed-on: #3
2020-06-06 08:49:49 -07:00
R Tyler Croy e5e3efe3ec checkpoint old work in progress 2020-05-27 21:23:58 -07:00
R Tyler Croy 3aec18140e Tweak the websocket handling a bit to be a little closer to "standard" async
Riffing on https://book.async.rs/tutorial/receiving_messages.html
2020-03-28 13:24:54 -07:00
R Tyler Croy d406c49bc3 Checkpointing some work in progress
Just tinkering in this commit with ideas for how to pass around and manage the
channels for each connection
2020-03-10 12:58:53 -07:00
R Tyler Croy df596146ca Wrap the connection handling logic into a struct
Doing this simple thing right now to verify that I know how to do some more
object-oriented stuff with async_std::task
2020-03-08 13:20:45 -07:00
R Tyler Croy 78963a4bf4 Tinkering with using async-tungstenite to send/receive messages 2020-03-07 22:40:20 -08:00
R Tyler Croy d1276bbcc8 Remove warp in favor of tide and async-fungstenite
Unfortunately I could not make peace with tokio, which is a good library but
just not for me in this project. Instead, switching gears to 100% async
2020-03-07 17:56:19 -08:00
R Tyler Croy 6b3f313478
Propagate a bus reference into the Connection and attempt to use it (failing)
This is currently failing due to some issues with lifetimes:

error: cannot infer an appropriate lifetime
   --> eventbus/src/server/main.rs:207:22
    |
207 |     async fn runloop(&mut self) {
    |                      ^^^^^^^^^ ...but this borrow...
...
213 |         let writer = tokio::task::spawn(async {
    |                      ------------------ this return type evaluates to the `'static` lifetime...
    |
note: ...can't outlive the lifetime `'_` as defined on the method body at 207:22
   --> eventbus/src/server/main.rs:207:22
    |
207 |     async fn runloop(&mut self) {
    |                      ^
help: you can add a constraint to the return type to make it last less than `'static` and match the lifetime `'_` as defined on the method body at 207:22
    |
213 |         let writer = tokio::task::spawn + '_(async {
    |                      ^^^^^^^^^^^^^^^^^^^^^^^

error: aborting due to previous error

Unfortunately the proposed syntax does not work properly, so I will have to wait
for a wireless connection in order to determine the right syntax here
2020-02-01 06:51:54 -08:00
R Tyler Croy b2dae148ed
Add some Debug formatting on the structs 2020-02-01 06:51:33 -08:00
R Tyler Croy b1f5e39bf4
Properly await on the futures.
This commit ensures that the reader/writer on the connection workers properly
2020-02-01 06:29:55 -08:00
R Tyler Croy 477e3c7933
Remove merge conflict failure 2020-02-01 06:28:57 -08:00
R Tyler Croy 883e44d276
Remove the clang linker configuration, since it is not on all platforms
This will make it easier for my aarch64 builds
2020-02-01 06:18:48 -08:00
R Tyler Croy 5596323dd8
Merge remote-tracking branch 'origin/warp-speed' into warp-speed 2020-02-01 03:53:07 -08:00
R Tyler Croy e12cf55542
local wip, playing with a connection object 2020-02-01 03:52:34 -08:00
R Tyler Croy b828dcce63 wip 2020-02-01 03:51:47 -08:00
R Tyler Croy 0700007219
fmt 2020-01-26 15:33:25 -08:00
R Tyler Croy 2dac86d95f
WIP tweaking 2020-01-26 15:33:15 -08:00
R Tyler Croy 9dcf36165c Revert "Test commmit"
This reverts commit 76493a1f27.
2020-01-20 20:50:01 -08:00
R Tyler Croy 76493a1f27 Test commmit 2020-01-21 04:31:16 +00:00
R Tyler Croy a6d008841e
Experimenting with a Connection struct 2020-01-20 20:24:04 -08:00
R Tyler Croy 34b2a970fa
Tweak enough to make the end-to-end message passing work, but only with heartbeats 2020-01-20 12:35:57 -08:00
R Tyler Croy bf662d72d5
Shuffle messages in and out of the websockets and the eventbus
This has the basics of working, but the Event objects are properly formed to
share the right msgs
2020-01-19 23:53:21 -08:00
R Tyler Croy d837eb8af1
Checkpoint reproduction for rust-lang/rust#68372 2020-01-19 11:04:36 -08:00
R Tyler Croy 906aa2bc65
Does not compile: experimenting with APIs for the Eventbus
This is just some tinkering I wish to checkpoint before ripping it all out again
2020-01-19 10:53:16 -08:00
R Tyler Croy c1a56dea9c
Incorporate basic warp websocket code to at least start manual testing with 2020-01-18 12:58:20 -08:00
R Tyler Croy 49d073e74b
Refactor the loading of handlebars templates out, and add some more error correction
Discovered another bug when vim dropped a .swp file in the templates/ directory.
Yay?
2020-01-18 12:44:21 -08:00
R Tyler Croy 70afc3df69
Refactoring msg code out of the root of the eventbus crate
This will keep the root from getting too busy
2020-01-18 12:43:28 -08:00
R Tyler Croy f9a841db95
Re-introduce processing of settings, fixing a bug while I'm at it.
The unit test I added caught the lack of a .required(false) when loading the
configuration from a local file. This meant that the eventbus could _not_
function without a local eventbus.yml
2020-01-18 11:49:46 -08:00