{"id":25846670,"url":"https://github.com/eodcgmbh/eodc-jeg-kernels","last_synced_at":"2026-04-30T11:36:25.476Z","repository":{"id":266269685,"uuid":"897823128","full_name":"eodcgmbh/eodc-jeg-kernels","owner":"eodcgmbh","description":"Julia kernel based on JuliaLang/IJulia.jl for Jupyter Enterprise Gateway","archived":false,"fork":false,"pushed_at":"2026-03-24T13:51:08.000Z","size":213,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-25T16:32:23.335Z","etag":null,"topics":["julia","jupyter"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eodcgmbh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-12-03T09:55:05.000Z","updated_at":"2026-03-24T13:51:12.000Z","dependencies_parsed_at":"2025-06-30T10:07:26.824Z","dependency_job_id":"e5072705-9c3d-418c-ab1a-51e0cc0fd1c0","html_url":"https://github.com/eodcgmbh/eodc-jeg-kernels","commit_stats":null,"previous_names":["eodcgmbh/julia-jeg-kernel","eodcgmbh/jeg-kernels"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/eodcgmbh/eodc-jeg-kernels","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eodcgmbh%2Feodc-jeg-kernels","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eodcgmbh%2Feodc-jeg-kernels/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eodcgmbh%2Feodc-jeg-kernels/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eodcgmbh%2Feodc-jeg-kernels/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eodcgmbh","download_url":"https://codeload.github.com/eodcgmbh/eodc-jeg-kernels/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eodcgmbh%2Feodc-jeg-kernels/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32463892,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T22:27:22.272Z","status":"online","status_checked_at":"2026-04-30T02:00:05.929Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["julia","jupyter"],"created_at":"2025-03-01T09:33:17.846Z","updated_at":"2026-04-30T11:36:25.432Z","avatar_url":"https://github.com/eodcgmbh.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# README\n\n[![Build and Publish jeg-kernelspecs](https://github.com/eodcgmbh/eodc-jeg-kernels/actions/workflows/build-publish_jeg-kernelspecs.yml/badge.svg)](https://github.com/eodcgmbh/eodc-jeg-kernels/actions/workflows/build-publish_jeg-kernelspecs.yml)\n[![Build and Publish jeg-python-kernel](https://github.com/eodcgmbh/eodc-jeg-kernels/actions/workflows/build-publish_kernel-python.yml/badge.svg)](https://github.com/eodcgmbh/eodc-jeg-kernels/actions/workflows/build-publish_kernel-python.yml)\n[![Build and Publish jeg-julia-kernel](https://github.com/eodcgmbh/eodc-jeg-kernels/actions/workflows/build-publish_kernel-julia.yml/badge.svg)](https://github.com/eodcgmbh/eodc-jeg-kernels/actions/workflows/build-publish_kernel-julia.yml)\n\n## Components\n\n### container/\n\nThese scripts run inside the Julia/Jupyter container or are used to create it.\n\n* `kernel-launchers/`\n\n  This directory is expected to be in the container at `/usr/local/bin/`.\n\n  * `julia/scripts/launch_ijuliakernel.jl`\n    * Started by `bootstrap_kernel.sh` with the relevant environment variables (kernel ID, public key, etc.) as parameters, which are set by the JEG at container startup. This, in turn, invokes the `server_listener.py` as a subprocess.\n  * `julia/scripts/server_listener.py`\n    * This takes the initial connection parameters from the JEG, attempts to find (but not bind to) available ports accordingly for [ZeroMQ](https://zeromq.org/), and finally responds to JEG with a so-called `connection_file`, which includes all parameters to establish a connection between JEG and the Julia kernel.\n\n* `bootstrap-kernel.sh`\n\n  * The script that is initially invoked when the kernel container starts. Depending on the chosen language, it calls the corresponding runtime. In the case of Julia, `launch_ijuliakernel.jl` with the necessary parameters from JEG is started.\n\n* `eventloop.jl`\n\n  * The event loop at the kernel's core that continously receives messages from JEG. This file is slightly extend from recent commits to [IJulia](https://github.com/JuliaLang/IJulia.jl) and needs to be fixed such that no adaptations are required (see comments and FIXME).\n\n* `init.jl`\n\n  * The last startup script for IJulia that is invoked by `launch_ijuliakernel.jl`. This takes the connection parameters created by `server_listener.py` in order to bind to ZeroMQ ports and set up corresponding message queues. Furthermore, all standard streams are redirected to IJulia.\n\n* `Dockerfile`\n  * The defining file for Julia kernels. It is based on `quay.io/jupyter/julia-notebook` but extended such that the modified files herein are included in the final image. The startup script is `bootstrap-kernel.sh`.\n\n\n### gateway/kernelspec-image\n\nThese files are meant to be placed at the Jupyter Enterprise Gateway.\n\n* `julia_kubernetes/`\n  * `kernel.json`\n    * This is the kernel specification that defines the image to be used and how Kubernetes is supposed to start the pod that holds the running Julia kernel container.\n  * `logo-64x64.png`\n    * The Julia logo.\n  * `scripts/kernel-pod.yaml.j2`\n    * The Jinja template that defines the kernel's pod can be modified to mount certain paths or set memory and compute limits, for example.\n  * `scripts/launch_kubernetes.py`\n    * With this script, Kubernetes is instructed to initiate a pod according to the kernel specification. This is unaltered, but must be included nonetheless.\n\n\n* `Dockerfile`\n  * The Dockerfile for this kernelspec image that is mounted by the enterprise gateway pod.\n\n### scripts/\n\n* `build_kernel_image.sh`\n  Builds and pushes the Julia kernel image `julia-kernel:alpha`\n\n* `build_kernelspec_image.sh`\n  Builds and pushes the kernel specification image `julia-kernelspec:alpha` that includes Julia.\n\n* `cmd.sh`\n  Bash commands to start JEG and JupyterLab in a Minikube cluster.\n\n* `pre-pull.sh`\n  Some commands that prematurely pull relevant images on the kernel image pullers.\n\n### test/\n\n* `julia-testnb.ipynb`\n  * A Julia notebook that allows to test the basic functionalities, including multi-threaded code execution.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feodcgmbh%2Feodc-jeg-kernels","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feodcgmbh%2Feodc-jeg-kernels","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feodcgmbh%2Feodc-jeg-kernels/lists"}