{"id":31788155,"url":"https://github.com/atp-mipt/jsyntrax","last_synced_at":"2025-10-10T14:15:41.860Z","repository":{"id":47911850,"uuid":"307172786","full_name":"atp-mipt/jsyntrax","owner":"atp-mipt","description":"Reimplement syntrax in Java","archived":false,"fork":false,"pushed_at":"2025-09-02T16:46:58.000Z","size":5679,"stargazers_count":34,"open_issues_count":14,"forks_count":4,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-09T14:48:34.436Z","etag":null,"topics":["diagram","documentation","railroad","railroad-diagrams"],"latest_commit_sha":null,"homepage":"https://atp-mipt.github.io/jsyntrax/","language":"Java","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/atp-mipt.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":"2020-10-25T19:10:07.000Z","updated_at":"2025-06-08T18:28:08.000Z","dependencies_parsed_at":"2025-06-08T19:23:50.759Z","dependency_job_id":"e3741b5c-2be8-4ab1-bb7b-28a385a5f808","html_url":"https://github.com/atp-mipt/jsyntrax","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/atp-mipt/jsyntrax","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atp-mipt%2Fjsyntrax","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atp-mipt%2Fjsyntrax/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atp-mipt%2Fjsyntrax/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atp-mipt%2Fjsyntrax/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/atp-mipt","download_url":"https://codeload.github.com/atp-mipt/jsyntrax/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atp-mipt%2Fjsyntrax/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279004178,"owners_count":26083688,"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","status":"online","status_checked_at":"2025-10-10T02:00:06.843Z","response_time":62,"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":["diagram","documentation","railroad","railroad-diagrams"],"created_at":"2025-10-10T14:15:38.258Z","updated_at":"2025-10-10T14:15:41.856Z","avatar_url":"https://github.com/atp-mipt.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"![](jsyntrax.svg)\n\n\n# jsyntrax\n\n[![Actions Status: build](https://github.com/atp-mipt/jsyntrax/workflows/build/badge.svg)](https://github.com/atp-mipt/jsyntrax/actions?query=workflow%3A\"build\")\n[![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.atp-fivt/jsyntrax/badge.svg)](https://maven-badges.herokuapp.com/maven-central/org.atp-fivt/jsyntrax)\n\nJSyntrax is a railroad diagrams generator. \nIt creates a visual illustration of the grammar used for programming languages. A specification file describes the syntax as a hierarchy of basic elements. \nThis is processed into an image representing the same syntax with interconnected bubbles.\n\nThe specification is a set of nested Groovy function calls:\n\n```groovy\nindentstack(10,\n  line(opt('-'), choice('0', line('1-9', loop(None, '0-9'))),\n    opt('.', loop('0-9', None))),\n  line(opt(choice('e', 'E'), choice(None, '+', '-'), loop('0-9', None)))\n)\n```\n\nThis is processed by JSyntrax to generate an SVG image:\n\n![](json_number.svg)\n\nJSyntrax can render to SVG vector images or PNG bitmap images. The SVG output can have [hyperlinked text](https://atp-mipt.github.io/jsyntrax/#_hyperlinked_svg) allowing users to quickly navigate to documentation of different syntax elements.\n\nJSyntrax is a Java reimplementation of [syntrax](https://github.com/kevinpt/syntrax/) project, originally written in Python. We use [Apache Batik](https://xmlgraphics.apache.org/batik/) for SVG rasterization.\n\nThe aim of this project is to make `syntrax` tool easy to install on any operating system. No software and libraries are required for `jsyntrax` besides Java 11.\n\n## Requirements, download and installation\n\nJSyntrax requires [JDK 11 or later](https://adoptopenjdk.net/releases.html).\n\nDownload the latest release from [GitHub Releases](https://github.com/atp-mipt/jsyntrax/releases) page. \n\nUnzip the archive anywhere, `/bin` directory will contain the executable `syntrax` file. \n\n## Documentation\n\nThe full documentation is available online at the [main JSyntrax site](https://atp-mipt.github.io/jsyntrax/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatp-mipt%2Fjsyntrax","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fatp-mipt%2Fjsyntrax","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatp-mipt%2Fjsyntrax/lists"}