-
Notifications
You must be signed in to change notification settings - Fork 271
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Decide Runtime Targets #65
Comments
strawdog: let's not bother trying to support 32-bit. other strawdogs? |
The very general desire is that we be able to run on Kubernetes and AWS-Lambda-like environments, but that's of course caught up in the implementation details of the Docker images that are running within it and the binary that we're trying to run on it! Kubernetes seems pretty well understood, but we should try to identify the technical requirements of running on AWS Lambda! |
I think supporting the "cheaper" lambda architecture for ARM is preferred as the router will spend most of it's time waiting for other services to respond rather than doing anything computational heavy. |
Any idea what the roadmap looks like for this? It's a huge blocker for us and I'm sure a lot of others for running the router locally (natively) on M1 Mac. |
I'm going to close this issue, which was originally meant to track which architectures we wanted to support. If you're looking to track the ARM support stuff, then I'd recommend following #1192. |
In apollographql#58 I added a snapshots generation phase to our harmonizer packages. However I created a bug because the snapshot generation phase would happen when the harmonizer-0 and harmonizer-2 packages are generated. This means downstream users who would rely on published harmonizer crates would get snapshots generated by an other computer / architecture. This triggered a bug that would fail any harmonizer call when relying on the published crate. This commit adds a build.rs script to the published crates, so that snapshots are created when downstream binaries are built.
We want the Router to be able to run "Anywhere" but we need to start with a practical list of targets that we can ship and be cognizant of the constraints that some "nice to haves" would put on us.
Candidates
As a conversation starter, I suggest we have only Tier 1 target architectures as candidates. Lifting that list from the linked page, it's:
aarch64-unknown-linux-gnu
i686-pc-windows-gnu
i686-pc-windows-msvc
i686-unknown-linux-gnu
x86_64-apple-darwin
x86_64-pc-windows-gnu
x86_64-pc-windows-msvc
x86_64-unknown-linux-gnu
Note that this list does not include
aarch64-unknown-linux-musl
. That omission doesn't by itself preclude us from running on Alpine, though we are further constrained in this regard by our dependence on V8 for the query planner. This is only intended to be a constraint until the point that we can re-write the query planner in Rust natively, or until therusty-v8
project can run more easily on MUSL. See this issue. It's surmountable, but it's probably more work than it's worth for experimental phases.In Scope
TBD
Out of Scope
TBD
The text was updated successfully, but these errors were encountered: