{"id":20550525,"url":"https://github.com/guywaldman/ravro","last_synced_at":"2025-04-14T11:18:06.011Z","repository":{"id":209944825,"uuid":"196055645","full_name":"guywaldman/ravro","owner":"guywaldman","description":"Simple CLI for Apache Avro with a high-level API","archived":false,"fork":false,"pushed_at":"2019-07-14T03:39:32.000Z","size":73,"stargazers_count":7,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-04-14T11:18:00.965Z","etag":null,"topics":["apache","avro","cli","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/guywaldman.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}},"created_at":"2019-07-09T17:41:19.000Z","updated_at":"2021-11-01T03:38:59.000Z","dependencies_parsed_at":null,"dependency_job_id":"4d35ad47-5299-4b82-9eb0-122a32e9863d","html_url":"https://github.com/guywaldman/ravro","commit_stats":null,"previous_names":["guywaldman/ravro"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guywaldman%2Fravro","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guywaldman%2Fravro/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guywaldman%2Fravro/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guywaldman%2Fravro/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/guywaldman","download_url":"https://codeload.github.com/guywaldman/ravro/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248868766,"owners_count":21174758,"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":["apache","avro","cli","rust"],"created_at":"2024-11-16T02:25:22.006Z","updated_at":"2025-04-14T11:18:05.999Z","avatar_url":"https://github.com/guywaldman.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ravro\n\n![Version 0.2.0](https://img.shields.io/badge/version-0.2.0-green.svg)\n\nA CLI for [Apache Avro](https://avro.apache.org/) manipulations.\n\n![Screenshot](./assets/image.png)\n\n\u003e **⚠ Under heavy development ⚠**\n\u003e\n\u003e Please use at your own discretion.\n\n---\n\n## Installation\n\n### Compile from Source\n\nUse `cargo`:\n\n```\ncargo build --release\n```\n\n### Binaries\n\nThere are existing compiled binaries for Windows at the moment.\nThey can be downloaded from the [releases](https://github.com/guywald1/ravro/releases) page.\n\n## Usage\n\n```shell\n\u003e # Retrieve all columns for a list of records\n\u003e ravro get .\\test_assets\\bttf.avro\n\n+-----------+--------------+-----+\n| firstName | lastName     | age |\n+-----------+--------------+-----+\n| Marty     | McFly        | 24  |\n+-----------+--------------+-----+\n| Biff      | Tannen       | 72  |\n+-----------+--------------+-----+\n| Emmett    | Brown        | 65  |\n+-----------+--------------+-----+\n| Loraine   | Baines-McFly | 62  |\n+-----------+--------------+-----+\n\n\u003e # Search (using regular expressions)\n\u003e ravro get .\\test_assets\\bttf.avro --search McFly\n\n+-----------+--------------+-----+\n| firstName | lastName     | age |\n+-----------+--------------+-----+\n| Marty     | McFly        | 24  | # the second field will appear in bold green here\n+-----------+--------------+-----+\n| Loraine   | Baines-McFly | 62  | # the second field will appear in bold green here\n+-----------+--------------+-----+\n\n\u003e # Select only some columns\n\u003e ravro get .\\test_assets\\bttf.avro --fields firstName age\n\n+-----------+-----+\n| firstName | age |\n+-----------+-----+\n| Marty     | 24  |\n+-----------+-----+\n| Biff      | 72  |\n+-----------+-----+\n| Emmett    | 65  |\n+-----------+-----+\n| Loraine   | 62  |\n+-----------+-----+\n\n\u003e # Select the first 2 columns\n\u003e ravro get .\\test_assets\\bttf*.avro --fields firstName age --take 2\n\n+-----------+-----+\n| firstName | age |\n+-----------+-----+\n| Marty     | 24  |\n+-----------+-----+\n| Biff      | 72  |\n+-----------+-----+\n\n\u003e # Output as CSV\n\u003e ravro get .\\test_assets\\bttf*.avro --fields firstName age --take 2 --format csv\n\nfirstName,age\nMarty,24\nBiff,72\n```\n\n## Options\n\n- `fields (f)` - The list (separated by spaces) of the fields you wish to retrieve\n- `search (s)` - The regular expression to filter and display only rows with columns that contain matching values. The matching fields will be highlighed\n- `take (t)` - The number of records you wish to retrieve\n- `codec (c)` - The codec for decompression - omit for no codec, or specify \"deflate\"\n- `format (p)` - The format you wish to output the Avro - omit for a pretty print as a table, or specify \"csv\" for CSV\n\n## TODO\n\n- Parquet support using [Arrow's Parquet crate](https://github.com/apache/arrow/tree/master/rust/parquet)\n- Extract CLI functionality into a library\n- More display formats\n- Avro generation from JSON\n- Schema\n- `Snappy` codec\n\n## Caveats\n\n- The schema is inferred based on the first record it finds. This may not be desired for some use-cases\n- Only supports top-level records at the moment\n\n---\n\n## Contributions\n\nAre very welcome! I am by no means an expert on Spark, Avro or even Rust and there is _much_ to be improved here.\n\n\n## Thanks 🙏\n\n- [avro-rs](https://github.com/flavray/avro-rs)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguywaldman%2Fravro","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fguywaldman%2Fravro","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguywaldman%2Fravro/lists"}