GramEditor/gram
39
986
Fork
You've already forked gram
88

Building without remote_server #100

Closed
opened 2026年03月13日 18:08:13 +01:00 by ekliot · 6 comments
Contributor
Copy link

I've been poking around the build process, and noticed that remote_server takes a long time to compile (took me ~15min out of ~60min).

I'm assuming that remote_server is used for zed's collaboration features, which I'm not planning to use, and as far as I can tell are currently unused in gram?

If that's true, I think it would be helpful to:

  • make building remote_server opt-in as part of the build scripts
    • this ought to speed up local builds
  • adjust CI to build gram and remote_server as separate releases
    • this ought to parallelize the runners, and to allow downloading releases without remote_server
  • more clearly delineate the role remote_server has in gram

If I'm wrong in my assumption, and/or misunderstanding rust build processes (as in, gram and remote_server cannot be built separately), please let me know.

(grepping for remote_server gives the impression just ripping it out would be a little messy, hence suggesting a bandaid fix to simply not build the binary, for now)

I've been poking around the build process, and noticed that `remote_server` takes a long time to compile (took me ~15min out of ~60min). I'm _assuming_ that `remote_server` is used for zed's collaboration features, which I'm not planning to use, and as far as I can tell are currently unused in gram? If that's true, I think it would be helpful to: - make building `remote_server` opt-in as part of the build scripts - this ought to speed up local builds - adjust CI to build `gram` and `remote_server` as separate releases - this ought to parallelize the runners, and to allow downloading releases without `remote_server` - more clearly delineate the role `remote_server` has in `gram` If I'm wrong in my assumption, and/or misunderstanding rust build processes (as in, `gram` and `remote_server` cannot be built separately), please let me know. (grepping for `remote_server` gives the impression just ripping it out would be a little messy, hence suggesting a bandaid fix to simply not build the binary, for now)
Contributor
Copy link

I think there is a misunderstanding. As I understand, gram does not have support for any of the collaborative stuff that Zed has at all. remote_server is concerned with developing on a remote machine using gram.

I think there is a misunderstanding. As I understand, `gram` does not have support for any of the collaborative stuff that Zed has at all. `remote_server` is concerned with developing on a remote machine using `gram`.
Author
Contributor
Copy link

ah, gotcha, thank you for clarifying.

to clarify further, is remote_server used by the client, or is it the server that clients connect to?

ah, gotcha, thank you for clarifying. to clarify further, is `remote_server` used by the client, or is it the server that clients connect to?
Contributor
Copy link

I think it's the latter, have you looked at the docs here? Maybe this will answer your question.

I think it's the latter, have you looked at the docs [here](https://gram.liten.app/docs/remote-development/)? Maybe this will answer your question.
Owner
Copy link

The remote_server is a binary that you copy to a remote host and the editor starts and talks to, to edit projects on that host via SSH. It doesn’t have anything to do with collaboration.

But yeah it is only used for that purpose. We could add a build option to skip building it, yes

The remote_server is a binary that you copy to a remote host and the editor starts and talks to, to edit projects on that host via SSH. It doesn’t have anything to do with collaboration. But yeah it is only used for that purpose. We could add a build option to skip building it, yes
Author
Contributor
Copy link

ah, thanks @theDoctor, those docs are helpful! I missed that.

if there's a clear line between "client" builds and "host" builds, then I guess my more precise issue is it would be convenient to be able to build one or the other (and by extension, to have separate tarballs in the CI artifacts).

I can dig into that, time permitting, my rust-fu is lacking but I think this should be more of a CI/build process task.

ah, thanks @theDoctor, those docs are helpful! I missed that. if there's a clear line between "client" builds and "host" builds, then I guess my more precise issue is it would be convenient to be able to build one or the other (and by extension, to have separate tarballs in the CI artifacts). I can dig into that, time permitting, my rust-fu is lacking but I think this should be more of a CI/build process task.
Owner
Copy link

You can build the remote server only by running cargo build -p remote_server. That will build it for your current platform, but building it for another target and using musl for example is not hard once you've figured out the target triplet for your target platform.

You can build the remote server only by running `cargo build -p remote_server`. That will build it for your current platform, but building it for another target and using musl for example is not hard once you've figured out the target triplet for your target platform.
Sign in to join this conversation.
No Branch/Tag specified
main
test/wgpu-on-mac
test-ci/failing-test-mac
test/failing-test-mac
test/build-on-22-04
test/wgpu-present-mode-mailbox
v2.1
test/altgr-fix-again
test/2.0.0-rc1
test/linux-build
test/objc2
v1.2.1
3.0.1
3.0.0
2.2.0
2.1.2
2.1.1
2.1.0
2.0.0
1.2.1
1.2.0
1.1.0
1.0.0
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
3 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
GramEditor/gram#100
Reference in a new issue
GramEditor/gram
No description provided.
Delete branch "%!s()"

Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?