{"id":28570886,"url":"https://github.com/Jelly-RDF/cli","last_synced_at":"2025-06-10T18:04:27.252Z","repository":{"id":283109877,"uuid":"950695152","full_name":"Jelly-RDF/cli","owner":"Jelly-RDF","description":"CLI utility for working with Jelly data","archived":false,"fork":false,"pushed_at":"2025-06-10T06:28:47.000Z","size":206,"stargazers_count":6,"open_issues_count":21,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-10T07:29:06.564Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Scala","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Jelly-RDF.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2025-03-18T14:50:49.000Z","updated_at":"2025-06-10T06:28:51.000Z","dependencies_parsed_at":"2025-03-18T16:40:30.416Z","dependency_job_id":"58397d9e-a4c0-4ebd-9b28-5df15b9fb3e4","html_url":"https://github.com/Jelly-RDF/cli","commit_stats":null,"previous_names":["jelly-rdf/cli"],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jelly-RDF%2Fcli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jelly-RDF%2Fcli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jelly-RDF%2Fcli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jelly-RDF%2Fcli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Jelly-RDF","download_url":"https://codeload.github.com/Jelly-RDF/cli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jelly-RDF%2Fcli/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259123314,"owners_count":22808863,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2025-06-10T18:01:38.780Z","updated_at":"2025-06-10T18:04:27.244Z","avatar_url":"https://github.com/Jelly-RDF.png","language":"Scala","funding_links":[],"categories":["Tools"],"sub_categories":[],"readme":"# jelly-cli\n\nFast and convenient CLI utility for working with the [Jelly](https://jelly-rdf.github.io/dev/) knowledge graph streaming protocol.\n\n## Quick start\n\nIf you are using Linux (x86_64, ARM64), macOS (ARM64), or Windows (x86_64), the recommended way run `jelly-cli` is to use a pre-built binary. Go to the **[releases page](https://github.com/Jelly-RDF/cli/releases/latest)** and download the binary built for your platform.\n\nYou can then run it like so:\n\n```shell\n$ chmod +x jelly-cli\n$ ./jelly-cli --help\n```\n\n## Usage\n\n### Convert RDF to Jelly\n\nTo convert an RDF file (e.g., Turtle) to Jelly, simply run:\n\n```shell\n$ ./jelly-cli rdf to-jelly input.ttl \u003e output.jelly\n```\n\n### Convert Jelly to RDF\n\nTo convert from Jelly to RDF run:\n\n```shell\n$ ./jelly-cli rdf from-jelly input.jelly \u003e output.nq\n```\n\nBy default, `jelly-cli` will translate files to NQuads. \nBut you can also specify the output format with `--out-format`, for example:\n\n```shell\n$ ./jelly-cli rdf from-jelly input.jelly --out-format=ttl \u003e output.ttl\n```\n\nYou can specify most well-known formats supported by Apache Jena, but also a custom Jelly-Text format. \nJelly-Text is a human-readable translation of Jelly binary. It's not meant for machine consumption. It is useful for debugging and inspecting Jelly files.\n\n### Transcode Jelly files\n\nThe `rdf transcode` command turns one or more input Jelly streams into a single output stream. It's extremely fast, using a dedicated transcoding algorithm. However, the numerical values for each of the options in the output stream must be greater than or equal to those in the input stream(s).\n\n```shell\n$ ./jelly-cli rdf transcode input.jelly \u003e output.jelly\n```\n\n### Inspect Jelly files\n\nTo inspect a Jelly file and get basic information describing its contents, such as stream options or number of triples in the file, run\n\n```shell\n$ ./jelly-cli rdf inspect input.jelly\n```\n\nYou can also compute the statistics separately for each stream frame with the `--per-frame` option:\n\n```shell\n$ ./jelly-cli rdf inspect input.jelly --per-frame\n```\n\nIn both cases, you will get the output as a valid YAML.\n\n### Validate Jelly files\n\nTo validate a Jelly file, run\n\n```shell\n$ ./jelly-cli rdf validate input.jelly\n```\n\nYou can also check whether the Jelly file has been encoded using specific stream options or is equivalent to another RDF file, with the use of additional options to this command.\n\n### General tips\n\nUse the `--help` option to learn more about all the available settings:\n\n```shell\n$ ./jelly-cli rdf to-jelly --help\n$ ./jelly-cli rdf from-jelly --help\n$ ./jelly-cli rdf transcode --help\n$ ./jelly-cli rdf inspect --help\n$ ./jelly-cli rdf validate --help\n```\n\nAnd use the `--debug` option to get more information about any exceptions you encounter.\n\n## Alternative installation\n\nIf for some reason the binaries wouldn't work for you, you can use the JAR build. The build runs on any platform, as long as you have Java (min. version 17). Go to the **[releases page](https://github.com/Jelly-RDF/cli/releases/latest)** and download the `jelly-cli.jar` file. Then, run it like so:\n\n```shell\njava -jar jelly-cli.jar --help\n```\n\nWe recommend using the binary distribution, because it has way faster startup times and doesn't require you to install Java.\n\n## Developer notes\n\nRun `sbt fixAll` before committing. Your code should be formatted and free of warnings.\nThe CI checks will not pass if this is not the case.\n\n### Building from source\n\n#### Ahead-of-time compilation (single binary)\n\n- Ensure you have [GraalVM](https://www.graalvm.org/) installed and the `native-image` utility is available in your `PATH`.\n- Clone the repository.\n- Run `sbt GraalVMNativeImage/packageBin`\n- The binary will be available at `./target/graalvm-native-image/jelly-cli`.\n\n#### Über-JAR build (just-in-time)\n\n- Run `sbt assembly`\n- The resulting JAR will be in `./target/scala-3.*.*/jelly-cli-assembly-*.jar`\n- Run it like: `java -jar \u003cpath-to-jar\u003e`\n\n----\n\nThe development of the Jelly protocol, its implementations, and supporting tooling was co-funded by the European Union. **[More details](https://w3id.org/jelly/dev/licensing/projects)**.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FJelly-RDF%2Fcli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FJelly-RDF%2Fcli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FJelly-RDF%2Fcli/lists"}