Skip to content

Serve algjulia-interop as a service through the backend#1132

Open
jmoggr wants to merge 1 commit intomainfrom
julia-service
Open

Serve algjulia-interop as a service through the backend#1132
jmoggr wants to merge 1 commit intomainfrom
julia-service

Conversation

@jmoggr
Copy link
Collaborator

@jmoggr jmoggr commented Mar 16, 2026

Closes #1109

I've tested this in the VM, but I expect there to be issues when it's first deployed. I don't think we should merge this until I/we have confirmed that it can be successfully deployed to staging manually, otherwise it will likely break CI.

Running other peoples code on servers I am responsible for makes me nervous. I have hardened the systemd service for julia to the best of my ability and am going to have an LLM spend the night iterating through all of the other options to find the minimal set of permissions that still works. This is probably better isolation than what docker offers by default and I don't think we can do much better without full virtualization. I might look into options for hardening the kernel as well, I've not done that on Nix and Nix might make that easy and worth doing.

@jmoggr jmoggr added enhancement New feature or request backend Backend, including web server and database build CI/CD, linting, deployments, and anything Nix labels Mar 16, 2026
@epatters epatters added the external Work on interfacing with other tools label Mar 16, 2026
@jmoggr jmoggr force-pushed the julia-service branch 2 times, most recently from 7d2f37f to 7b74906 Compare March 16, 2026 23:22
@jmoggr jmoggr marked this pull request as ready for review March 16, 2026 23:31
@jmoggr jmoggr requested a review from kasbah as a code owner March 16, 2026 23:31
@jmoggr jmoggr requested a review from epatters March 16, 2026 23:31
@epatters epatters changed the title Serve aljulia-interopt as a service through the backend Serve algjulia-interop as a service through the backend Mar 17, 2026
Copy link
Member

@epatters epatters left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks Jason, this looks great. Just a few small comments below.

# native libraries needed by AlgebraicJulia packages.
{ pkgs }:
let
juliaVersion = "1.11.6";
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should bump the Julia version to v1.12, the latest stable release.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This diff shouldn't be here, but in view of #1136, it should disappear anyway after rebasing off main.

qubit = { version = "1.0.0-beta.0", features = ["ts-serde-json", "ts-uuid", "ts-chrono"] }
rand = "0.8"
regex = "1.11.1"
reqwest = { version = "0.12", default-features = false, features = ["rustls-tls"] }
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any reason not to use the latest v0.13, which apparently also uses rustls by default?


async ({ model, diagram }) => {
const response = await fetch("http://127.0.0.1:8080/acsetcolim", {
const response = await api.fetch("/julia/acsetcolim", {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can imagine wanting to use a local Julia server when developing new analyses based on Julia. How should we handle that? One idea is add a Vite env variable defaulting to the above but settable to localhost if desired.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backend Backend, including web server and database build CI/CD, linting, deployments, and anything Nix enhancement New feature or request external Work on interfacing with other tools

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Remote compute running Julia and AlgebraicJulia interop process

2 participants