{"id":13399566,"url":"https://github.com/kaitai-io/kaitai_struct_visualizer","last_synced_at":"2025-04-06T07:14:30.952Z","repository":{"id":46772811,"uuid":"56528412","full_name":"kaitai-io/kaitai_struct_visualizer","owner":"kaitai-io","description":"Kaitai Struct: visualizer and hex viewer tool","archived":false,"fork":false,"pushed_at":"2024-07-28T18:34:49.000Z","size":302,"stargazers_count":279,"open_issues_count":18,"forks_count":25,"subscribers_count":21,"default_branch":"master","last_synced_at":"2024-07-31T19:21:40.613Z","etag":null,"topics":["console","hex-viewer","kaitai-struct","ruby","visualizer"],"latest_commit_sha":null,"homepage":"https://rubygems.org/gems/kaitai-struct-visualizer","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kaitai-io.png","metadata":{"files":{"readme":"README-dockerhub.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}},"created_at":"2016-04-18T17:38:03.000Z","updated_at":"2024-07-28T18:34:53.000Z","dependencies_parsed_at":"2022-08-14T08:50:09.724Z","dependency_job_id":"a2d83c78-7a85-425c-ad33-c029f05b03e8","html_url":"https://github.com/kaitai-io/kaitai_struct_visualizer","commit_stats":{"total_commits":218,"total_committers":7,"mean_commits":"31.142857142857142","dds":"0.37614678899082565","last_synced_commit":"0b5cb9f999ca8b3527f73b6acbb39386c39b6560"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaitai-io%2Fkaitai_struct_visualizer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaitai-io%2Fkaitai_struct_visualizer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaitai-io%2Fkaitai_struct_visualizer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaitai-io%2Fkaitai_struct_visualizer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kaitai-io","download_url":"https://codeload.github.com/kaitai-io/kaitai_struct_visualizer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247445681,"owners_count":20939961,"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":["console","hex-viewer","kaitai-struct","ruby","visualizer"],"created_at":"2024-07-30T19:00:39.569Z","updated_at":"2025-04-06T07:14:30.935Z","avatar_url":"https://github.com/kaitai-io.png","language":"Ruby","funding_links":[],"categories":["Visualizers, IDEs, hex editors","Ruby"],"sub_categories":["Arbitrary file formats"],"readme":"# Kaitai Struct: visualizer\n\nThis is a console visualizer for the [Kaitai Struct](https://kaitai.io/) project.\n\n![screenshot](https://raw.githubusercontent.com/kaitai-io/kaitai_struct_visualizer/87f42c8c1eee97b825a2ff7d00c1370f5a87d050/screenshot.png)\n\nKaitai Struct is a declarative language used for describe various\nbinary data structures, laid out in files or in memory: i.e. binary\nfile formats, network stream packet formats, etc.\n\nThe main idea is that a particular format is described in Kaitai\nStruct language (`.ksy` file) and then can be compiled with\n`ksc` into source files in one of the supported programming\nlanguages. These modules will contain generated code for a parser\nthat can read the described data structure from a file / stream and provide\naccess to it using a nice, easy-to-understand API.\n\nSee the [Kaitai Struct homepage](https://kaitai.io/) for details on `.ksy` files and general usage patterns.\n\n## Downloading and installing\n\n### Requirements _(this Docker image has everything bundled inside)_\n\n- [ksc](https://kaitai.io/#download) — `kaitai-struct-compiler`\n- [Java](https://openjdk.java.net/install/)\n- [Ruby](https://www.ruby-lang.org/) (latest Ruby 3.x recommended,\n  at least Ruby 2.4 required)\n\n### From RubyGems repository\n\nKaitai Struct visualizer is written in [Ruby](https://www.ruby-lang.org/) and is\navailable [on RubyGems](https://rubygems.org/gems/kaitai-struct-visualizer). Thus,\nyou'll need Ruby installed on your box and then you can just run:\n\n```shell\ngem install kaitai-struct-visualizer\n```\n\n---\n\nYou can use `ksv --version` to check what versions of `ksv` and its dependencies are installed, for example:\n\n```console\n$ ksv --version\nkaitai-struct-visualizer 0.7\nkaitai-struct-compiler 0.11\nkaitai-struct 0.11 (Kaitai Struct runtime library for Ruby)\n```\n\nThe versions of `kaitai-struct-compiler` and `kaitai-struct` should match. If not, see https://kaitai.io/#download for instructions how to install the latest version of `kaitai-struct-compiler` and/or use `gem update kaitai-struct` to update the [kaitai-struct](https://rubygems.org/gems/kaitai-struct) gem if needed.\n\n### Source code\n\nIf you're interested in developing the visualizer itself, you can check\nout the source code from the [kaitai_struct_visualizer](https://github.com/kaitai-io/kaitai_struct_visualizer) GitHub repository:\n\n```shell\ngit clone https://github.com/kaitai-io/kaitai_struct_visualizer.git\n```\n\nThen run `bundle install` to install dependencies. After that, you can run [`bin/ksv`](bin/ksv) or [`bin/ksdump`](bin/ksdump) right away (without having to install the `kaitai-struct-visualizer` gem first), which makes development easier.\n\n## Usage\n\nThere are two executables provided by this package:\n\n* `ksv` — interactive console visualizer with GUI\n* `ksdump` — command-line tool for dumping parsed data in JSON, XML or YAML format to standard output (_stdout_)\n\nThe basic usage is similar for both programs:\n\n```shell\nksv \u003cbinary-file\u003e \u003cksy-file\u003e... | \u003crb-file\u003e\n```\n\nFor `ksdump`, it may be useful to change the output format with the `-f` option (the default is `yaml`) and redirect the output to a file so that your terminal is not flooded with thousands of lines (for larger input files):\n\n```shell\nksdump -f json \u003cbinary-file\u003e \u003cksy-file\u003e... \u003e output.json\n```\n\n### Running with Docker\n\nThis project is also available via the [kaitai/ksv](https://hub.docker.com/r/kaitai/ksv) image on Docker Hub. The default entrypoint is `ksv` (the interactive visualizer):\n\n```shell\ndocker run --rm -it -v \"$(pwd):/share\" kaitai/ksv \u003cbinary-file\u003e \u003cksy-file\u003e\n```\n\nYou can specify `ksdump` as the entrypoint like this (and note that we don't need the `-it` flags anymore because `ksdump` is not interactive — omitting them in fact allows you to distinguish the `ksdump`'s output to _stdout_ and _stderr_, see [this comment](https://github.com/kaitai-io/kaitai_struct_visualizer/issues/56#issuecomment-1666629764)):\n\n```shell\ndocker run --rm -v \"$(pwd):/share\" --entrypoint ksdump kaitai/ksv -f json \u003cbinary-file\u003e \u003cksy-file\u003e \u003e output.json\n```\n\n---\n\nBuilding the Docker image locally:\n```shell\ndocker build . --tag docker.io/kaitai/ksv\n```\n\n## Licensing\n\nKaitai Struct visualizer is copyright (C) 2015-2024 Kaitai Project.\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program.  If not, see \u003chttps://www.gnu.org/licenses/\u003e.\n\n---\n\nNote that it applies only to visualizer itself, not `.ksy` input files\nthat one supplies in normal process of compilation, nor to compiler's\noutput files — that constitutes normal usage process and you obviously\nkeep copyright to both.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkaitai-io%2Fkaitai_struct_visualizer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkaitai-io%2Fkaitai_struct_visualizer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkaitai-io%2Fkaitai_struct_visualizer/lists"}