add streaming body to requests and responses #3

Merged
lx merged 64 commits from stream-body into main 2022-09-13 10:56:54 +00:00

64 Commits

Author SHA1 Message Date
Alex 298e956a19
undo needless change
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-09-13 12:48:54 +02:00
Alex 395f942fc7
Fix potential memory leak
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-09-13 12:37:55 +02:00
Alex b509e6057f
Missing cleanup
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-09-13 12:28:01 +02:00
Alex c00676feba
Uniformize flag naming
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-09-13 12:25:37 +02:00
Alex 18d5abc981
add precision to protocol description
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-09-13 12:20:49 +02:00
Alex 8ab6256c3b
No longer need to derive Clone on message types
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-09-13 12:12:55 +02:00
Alex 9362d26890
fill_buffer do something only if buf is empty
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-09-13 12:08:33 +02:00
Alex db96af2609
Add comment on cancellation
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-09-13 12:05:42 +02:00
Alex add2b54743
fix comment
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-09-13 11:52:35 +02:00
Alex bf0e82047f
try make more like before
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-09-13 11:51:03 +02:00
Alex 2305c2cf03
Use BytesMut instead of Vec<u8> in bytes_buf (extend is probably faster)
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-09-13 11:31:19 +02:00
Alex f022a77f97
Add documentation
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-09-12 17:43:10 +02:00
Alex 8a7aca9837
reword doc comment
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-09-12 17:20:45 +02:00
Alex f0326607ee
slightly change example
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-09-12 17:19:26 +02:00
Alex 0f799a7768
Implement Least Attained First scheduling of streams
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-09-06 19:42:49 +02:00
Alex 5af23955af
Merge branch 'main' into stream-body
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-09-02 14:24:45 +02:00
Alex 9bf29a7a18
Merge branch 'fix-ping' into stream-body
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-09-02 14:15:02 +02:00
Alex f6ad1d0fab
less verbosity
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-09-01 16:13:43 +02:00
Alex b82ad70dd5
Correctly defuse cancellation on simple requests
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-09-01 16:11:42 +02:00
Alex b931d0d1cf
try debug
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-09-01 16:01:56 +02:00
Alex 522f420e2b
Implement request cancellation
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-09-01 15:54:11 +02:00
Alex 3292566738
fix trace message 2022-09-01 14:43:27 +02:00
Alex 22d96929d5
Merge branch 'fix-ping' into stream-body
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-09-01 14:23:10 +02:00
Alex 4a59b73d7b
Add actual support for order tag
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-09-01 12:46:33 +02:00
Alex cd203f5708
Add OrderTag to Req and Resp, refactor errors
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-09-01 12:15:50 +02:00
Alex 745c786184
Also encode errorkind in stream
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-09-01 11:34:53 +02:00
Alex 7909a95d3c
Stream errors are now std::io::Error
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-09-01 11:21:24 +02:00
Alex 263db66fce
Refactor: create a BytesBuf utility crate (will also be usefull in Garage)
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-09-01 10:29:26 +02:00
Alex 3fd30c6e28
recv side: use unbounded channel to remove deadlock
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-09-01 09:45:24 +02:00
Alex 2c9d595da0
Remove useless phantom and pub(crate)
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-08-31 22:19:40 +02:00
Alex b55f61c38b
Fix things going wrong when sending chan is closed
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2022-07-26 12:11:48 +02:00
Alex bdf7d4731d
Add stream example to fullmesh example
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2022-07-26 12:01:13 +02:00
Alex 74e57016f6
Add some debugging
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2022-07-25 15:04:52 +02:00
Alex 7499721a10
Cargo fmt
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2022-07-25 11:07:23 +02:00
Alex c17a5f84ff
Remove broken test
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
2022-07-25 11:06:51 +02:00
Alex fed0542313
Remove blocking_send that crashes
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
2022-07-25 10:58:55 +02:00
Alex ab80ade4f0
Conversion between ByteStream and AsyncRead
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
2022-07-22 16:42:58 +02:00
Alex a5e5fd0408
Bump netapp version to 0.5
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
2022-07-22 15:23:45 +02:00
Alex a0dac87e3b
Add Req::new
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
2022-07-22 15:16:50 +02:00
Alex cbc21e40ac
Impose static lifetime on message and response
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
2022-07-22 14:45:28 +02:00
Alex 4825669293
Remove copy of serialized thing in encode
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
2022-07-22 14:38:03 +02:00
Alex 50358b944a
Cargo fmt; better adapt with_capacity_values
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
2022-07-22 13:48:43 +02:00
Alex aa1b29d41a
Terminology: don't use the word "body" anymore, talk of "attached stream"
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
2022-07-22 13:44:48 +02:00
Alex 67ea3a48fa
Add Resp::into_parts
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
2022-07-22 13:40:06 +02:00
Alex b9df442f03
Small optimization
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
2022-07-22 13:32:08 +02:00
Alex 50627c2060
Add comment
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
2022-07-22 13:27:56 +02:00
Alex f9db9a4b69
Simplify send.rs
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
2022-07-22 13:23:42 +02:00
Alex 5da59ebec5
Move things around and fix error bit
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
2022-07-22 13:06:10 +02:00
Alex 9cb28c21b4
Use bounded channels on receive side for backpressure
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
2022-07-22 13:01:52 +02:00
Alex 0b71ca12f9
Clean up framing protocol
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
2022-07-22 12:45:38 +02:00
Alex c358fe3c92
Hide streaming versions as much as possible
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
2022-07-22 10:55:37 +02:00
Alex 4934ed726d
Propose alternative API
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
2022-07-21 20:22:56 +02:00
Alex 7d148c7e76
One possibility, but I don't like it 2022-07-21 19:25:07 +02:00
Alex 44bbc1c00c
Rename AutoSerialize into SimpleMessage and refactor a bit 2022-07-21 19:05:51 +02:00
Alex 26989bba14
Use Bytes instead of Vec<u8> 2022-07-21 18:15:07 +02:00
Alex 9dffa812c4
Refactor send.rs 2022-07-21 17:59:15 +02:00
Alex f35fa7d18d
Move things around 2022-07-21 17:37:52 +02:00
trinity-1686a cdff8ae1be add detection of premature eos 2022-07-18 15:21:13 +02:00
trinity-1686a d3d18b8e8b use a framing protocol instead of even/odd channel 2022-06-20 23:40:31 +02:00
trinity-1686a 0fec85b47a start supporting sending error on stream 2022-06-19 18:42:27 +02:00
trinity-1686a 5d7541e13a wait for any ready stream instead of the highest priority one 2022-06-19 17:47:41 +02:00
trinity-1686a 4745e7c4ba further work on streams
most changes still required are related to error handling
2022-06-08 09:54:38 +02:00
trinity-1686a fb5462ecdb rechunk stream 2022-06-05 16:47:29 +02:00
trinity-1686a 368ba90879 initial work on associated stream
still require testing, and fixing a few kinks:
- sending packets > 16k truncate them
- send one more packet than it could at eos
- probably update documentation

/!\ contains breaking changes
2022-06-05 15:33:43 +02:00