{"id":13675920,"url":"https://github.com/padreati/rapaio-jupyter-kernel","last_synced_at":"2026-06-09T01:05:46.204Z","repository":{"id":155499663,"uuid":"627663713","full_name":"padreati/rapaio-jupyter-kernel","owner":"padreati","description":"Java jupyter kernel","archived":false,"fork":false,"pushed_at":"2026-01-14T06:37:07.000Z","size":23330,"stargazers_count":72,"open_issues_count":8,"forks_count":8,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-01-16T13:50:41.365Z","etag":null,"topics":["java","jshell-repl","jupyter","jupyter-notebook","jupyterlab"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","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/padreati.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-04-14T00:08:00.000Z","updated_at":"2026-01-15T12:29:59.000Z","dependencies_parsed_at":"2024-01-14T14:31:25.650Z","dependency_job_id":"559d7ad4-2bd1-4455-8ea1-52029386dcda","html_url":"https://github.com/padreati/rapaio-jupyter-kernel","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/padreati/rapaio-jupyter-kernel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/padreati%2Frapaio-jupyter-kernel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/padreati%2Frapaio-jupyter-kernel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/padreati%2Frapaio-jupyter-kernel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/padreati%2Frapaio-jupyter-kernel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/padreati","download_url":"https://codeload.github.com/padreati/rapaio-jupyter-kernel/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/padreati%2Frapaio-jupyter-kernel/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34086685,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-08T02:00:07.615Z","response_time":111,"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":["java","jshell-repl","jupyter","jupyter-notebook","jupyterlab"],"created_at":"2024-08-02T12:01:05.978Z","updated_at":"2026-06-09T01:05:46.196Z","avatar_url":"https://github.com/padreati.png","language":"Jupyter Notebook","funding_links":[],"categories":["Active Java Kernels"],"sub_categories":[],"readme":"# rapaio-jupyter-kernel\n\nJupyter kernel for Java language based on JShell. It implements Jupyter message specification version 5.4, and it requires Java \u003e= 17 (supports up to Java 26 with preview features).\n\n## Introduction\n\nI believe Java deserves a full feature and properly maintained jupyter kernel.\n\nThis kernel was inspired by [IJava kernel](https://github.com/SpencerPark/IJava), that is not actively maintained.\nEven from the beginning the project diverged from its source of inspiration: magics have a specific parser \nand interpreter, dependency management uses Maven (not Ivy), to enumerate some notable differences.\n\nThe project is in a production mode, and it contains mine and some other requested features.\nThe plan is to add new features if requested, so please add issues if you want this tool to be better and fit your needs.\nIf you find the kernel useful and additional contributors jump into this boat, an organization can be created and a \nshared ownership can also be added, all of those for the sole purpose of continuity of improvements. \nIf possible, you are welcome to contribute with code. Any feedback is appreciated.\n\n_About the name_: Personally, I need that kernel to use features from a library I contribute to for statistics, ML, \nand data manipulation. Its name is *rapaio*. As a consequence, the name of this kernel uses the name of the library\nand I kept that for continuity. If there will be a critical mass of contributors who will want to change the kernel's \nname, that will not be an issue whatsoever. \nHowever, this kernel has no connection with my library, it is completely independent, \nand it is a general-purpose Java kernel.\n\n## Features\n\n Follow issues, vote on them, and create new ones, if you need improvements. \nBelow are listed some features, besides running Java code, since this is the main purpose of the kernel:\n\n* Display Javadoc documentation (need styling and HTML postprocessing to make it nicer)\n* Ability to parse and provide javadoc documentation from the javadoc resources. In order to use javadoc they \nhave to be added as dependency (for example `%dependency /add io.github.padreati:rapaio-lib:jar:javadoc:8.1.0` \nand `%dependency /resolve`) \n* Console output with ANSI code colors\n* Autocompletion and documentation\n* Magic help function to facilitate navigation through the magic functions\n* Placeholders in magic commands\n* Display items and update items based on references\n* JShell commands (not all commands are implemented since some of them are not applicable)\n* Loading notebooks and JShell scripts\n* Loading jar or jars from the directory to the classpath\n* Adding directories with compiled classes to the classpath\n* Display image from local file systems or URL\n* Manage dependencies (with transitivity). More details: [DEPENDENCY-MANAGEMENT.md](DEPENDENCY-MANAGEMENT.md)\n* Magic commands allows string interpolation (write stuff like `%dependency /add ${group}:${artifact}:${version}`)\n* Configuration options through which you can customize the kernel behavior. \nMore details: [OPTIONS.md](OPTIONS.md)\n* SPI display extension system which allows one to display instances of various class types with various common\nMIME types with display renderers, and display transformers. More details: [DISPLAY.md](DISPLAY.md)\n\nFor a brief tour of the features check out the example notebook [here](example.ipynb).\n\n## Installation\n\nThe latest version can be found as a download in the releases section. Rapaio Jupyter Kernel contains an \ninstalling tool which allows users to quickly set up the kernel. The installer is contained in the jar distribution archive \nand can be called with:\n\n```sh\njava -jar ./rapaio-jupyter-kernel-3.0.3.jar -i -auto\n```\n\nThe `-auto` option uses an automatic mode for installing the kernel. The installer has also an interactive mode, and the kernel installation can be realized manually, also. \nFor more details, you can follow [INSTALL.md](INSTALL.md).\n\nTo dive deeper into how the kernel is configured and create custom kernel configurations you can follow [KERNEL.md](KERNEL.md).\n\n## Maven central\n\nThe project is also stored in maven central repositories and can be added as a dependency in maven as:\n\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003eio.github.padreati\u003c/groupId\u003e\n    \u003cartifactId\u003erapaio-jupyter-kernel\u003c/artifactId\u003e\n    \u003cversion\u003e3.0.3\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\nThis is unnecessary, since the kernel is packaged as a self-contained jar archive (including all dependencies), \nand can be downloaded from releases. In the future, it would be possible to introduce a plug-in mechanism to allow others to \nextend the library for their own purposes. I see possibilities to allow others to create custom display code for objects of their \nown type or to implement new magic features. This kind of notebook extension can work for custom features, for generic features \none can consider contributing to this project.\n\n ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpadreati%2Frapaio-jupyter-kernel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpadreati%2Frapaio-jupyter-kernel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpadreati%2Frapaio-jupyter-kernel/lists"}