Nathan Sobo
bfccb173c4
Update prost to include our changes
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-06-18 15:12:22 -06:00
Max Brunsfeld
a2a6d67e1e
Start work on implementing ::file on remote WorktreeHandles
2021-06-18 13:32:38 -07:00
Antonio Scandurra
f9d8e952f2
WIP
2021-06-18 19:28:39 +02:00
Antonio Scandurra
89d25458ac
Add worktree to workspace when joining a remote worktree
2021-06-18 14:52:38 +02:00
Antonio Scandurra
79cac1340e
Replace Worktree
with an enum
...
For now this enum only contains a `Local` variant, but the next step is
to add a `Remote` variant that will be constructed when joining a remote
worktree.
2021-06-18 12:07:57 +02:00
Max Brunsfeld
7a66cd1ae1
Implement Display for ConnectionId
2021-06-17 20:53:20 -07:00
Max Brunsfeld
cdfb33b283
Add a name to EnvelopedMessage for logging purposes
2021-06-17 20:48:26 -07:00
Max Brunsfeld
7a88e44264
Add menu command to join worktree using URL on clipboard
...
Introduce rpc::Client struct that wraps zed_rpc::Peer
2021-06-17 20:42:36 -07:00
Max Brunsfeld
3a78f053f6
Use strings for paths and buffer contents
2021-06-17 16:25:30 -07:00
Max Brunsfeld
f4dccc5353
Replace POST /worktrees rest endpoint with GET /rpc-address
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-06-17 16:11:54 -07:00
Max Brunsfeld
2fd0f0be50
Make TypedEnvelope fields public
2021-06-17 15:54:55 -07:00
Max Brunsfeld
a3c938cc77
Ignore message-handling error in disconnect unit test
2021-06-17 15:20:56 -07:00
Max Brunsfeld
531443dc9c
Don't generate bindgen layout tests
2021-06-17 15:20:12 -07:00
Max Brunsfeld
05a662b35e
Allow peers to receive individual messages before starting message loop
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-06-17 14:19:15 -07:00
Antonio Scandurra
4d28d03e3f
Rename handle_message
to on_message
2021-06-17 17:25:10 +02:00
Antonio Scandurra
82ac7e2072
Move handle_messages
into an extension method for Arc<Peer>
2021-06-17 16:32:28 +02:00
Antonio Scandurra
d243395e06
Use an i32
for user_id in RPC authentication message
2021-06-17 14:51:06 +02:00
Max Brunsfeld
c5cec247c4
Fix termination of peer's incoming future
...
* Re-enable peer tests
* Enhance request/response unit test to exercise
peers interacting with each other end-to-end
2021-06-16 21:18:22 -07:00
Max Brunsfeld
fb736d5e78
Remove peer message listeners when their receiver is dropped
2021-06-16 17:02:40 -07:00
Antonio Scandurra
9de4d73ffb
Move RpcClient
to zed_rpc
and rename it to Peer
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-06-16 18:01:26 +02:00
Antonio Scandurra
5e4872fdf8
Replace Request and Message with a single TypedEnvelope
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-06-16 17:43:53 +02:00
Antonio Scandurra
8112efd522
Replace callback-based requests/messages with streams
2021-06-16 14:26:54 +02:00
Max Brunsfeld
8b66e0aa7e
WIP - Allow RpcClient to register handlers for incoming messages
2021-06-15 17:22:48 -07:00
Max Brunsfeld
d3a3ad2820
Remove gpui dependency from rpc_client
...
Also, avoid any contention between connections.
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-06-15 15:18:40 -07:00
Max Brunsfeld
3db215418c
Allow RpcClient to encapsulate arbitrarily many connections
2021-06-15 14:12:42 -07:00
Max Brunsfeld
e88f33851e
Flatten protobuf message namespace
...
* Remove `FromClient`/`FromServer` distinction.
* Remove `subscribe` concept - clients will need to handle
unprompted messages from the server.
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-06-15 13:06:50 -07:00
Antonio Scandurra
546ce14cb9
Start sharing paths with the server via RPC
2021-06-15 16:14:08 +02:00
Antonio Scandurra
cf67fc6589
Simplify saving RpcClient
by removing the generic connection param
2021-06-15 15:36:58 +02:00
Antonio Scandurra
3e391c0785
Move worktree sharing down into Workspace
...
This will make it easier to pick a worktree and give it an `RpcClient`.
2021-06-15 15:14:17 +02:00
Antonio Scandurra
7b96888ab1
Ensure that futures returns from RpcClient
are 'static
2021-06-15 11:15:55 +02:00
Antonio Scandurra
04bf84af44
💄
2021-06-15 11:03:14 +02:00
Antonio Scandurra
1d9cfe6b64
Use an async Mutex
to guard access to write stream in RpcClient
2021-06-15 10:57:27 +02:00
Antonio Scandurra
301531ae04
Test RpcClient::subscribe
2021-06-15 10:46:23 +02:00
Max Brunsfeld
1c597ed998
Report io errors when sending payloads for RpcClient methods
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-06-14 16:11:24 -07:00
Antonio Scandurra
a87d4db155
Change RpcClient
methods to take shared references
...
This will make it easier to spawn a future on gpui's executors
when calling `RpcClient` methods.
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-06-14 19:59:46 +02:00
Antonio Scandurra
e551894189
Add RpcClient::subscribe
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-06-14 19:06:28 +02:00
Antonio Scandurra
cd1a4c49cf
Use a fixed-length delimiter for encoding/decoding messages in RPC
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-06-14 18:33:34 +02:00
Antonio Scandurra
0ddbe0c757
Make drop test more reliable
2021-06-14 17:27:00 +02:00
Antonio Scandurra
8e3f40bfdd
Close connection when RpcClient
is dropped and add unit tests
2021-06-14 14:32:49 +02:00
Max Brunsfeld
b2b1ce5e81
Start work on RpcClient
2021-06-11 14:47:13 -07:00
Max Brunsfeld
86ff599285
Use tiny_http for handling login HTTP request
...
Our manual HTTP parsing and encoding was not working with Safari.
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-06-11 10:28:00 -07:00
Max Brunsfeld
71d64a837e
Avoid crash when user denies keychain access
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-06-11 09:47:24 -07:00
Antonio Scandurra
4efebdaa52
Switch CreateWorktreeResponse::worktree_id
to be a i32
...
Apparently all IDs in `sqlx` on the server are represented as i32s.
2021-06-11 16:15:06 +02:00
Max Brunsfeld
20542f54ef
Start work on connecting to RPC endpoint
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-06-10 22:12:04 -07:00
Max Brunsfeld
e897d1c98e
Update collaboration doc
...
Add some diagrams
2021-06-10 14:27:05 -07:00
Max Brunsfeld
9c5c9fdc36
Add initial messages for setting up a worktree share
2021-06-09 18:14:30 -07:00
Max Brunsfeld
a10f4bb4ff
Introduce zed_rpc::proto module containing protobuf stream logic
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-06-09 13:19:12 -07:00
Max Brunsfeld
ee52a5d061
Store credentials in the keychain on login
2021-06-08 18:08:09 -07:00
Max Brunsfeld
5673f116c9
Add a platform API for accessing the keychain
2021-06-08 17:44:45 -07:00
Max Brunsfeld
3214fef727
Ensure that base64 token values are URL-safe
2021-06-08 13:58:38 -07:00