{"id":13565582,"url":"https://github.com/ept/avrodoc","last_synced_at":"2025-04-03T22:31:47.224Z","repository":{"id":5050274,"uuid":"6211498","full_name":"ept/avrodoc","owner":"ept","description":"Documentation tool for Avro schemas","archived":true,"fork":false,"pushed_at":"2019-11-15T15:52:02.000Z","size":240,"stargazers_count":149,"open_issues_count":18,"forks_count":81,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-04-01T18:00:25.669Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"CyanogenMod/android_external_guava","license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ept.png","metadata":{"files":{"readme":"README.md","changelog":"Changes.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-10-14T07:31:02.000Z","updated_at":"2025-03-23T22:46:53.000Z","dependencies_parsed_at":"2022-07-07T22:28:47.572Z","dependency_job_id":null,"html_url":"https://github.com/ept/avrodoc","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ept%2Favrodoc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ept%2Favrodoc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ept%2Favrodoc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ept%2Favrodoc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ept","download_url":"https://codeload.github.com/ept/avrodoc/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247090286,"owners_count":20881942,"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":"2024-08-01T13:01:50.579Z","updated_at":"2025-04-03T22:31:46.658Z","avatar_url":"https://github.com/ept.png","language":"JavaScript","funding_links":[],"categories":["Tools","JavaScript"],"sub_categories":[],"readme":"Avrodoc\n=======\n\nAvrodoc is a documentation tool for [Avro](http://avro.apache.org/) schemas. It reads schemas in\nAvro's JSON schema format -- `*.avsc` files -- and renders them nicely in a web browser.\n\nTake a look at [the example](http://avrodoc.herokuapp.com/#/), which is generated from\n[this schema](https://github.com/ept/avrodoc/blob/master/schemata/example.avsc).\n\nWhy? Because your data type definitions are your most important API... and you would never make an\nAPI without good documentation, would you?\n\n\nHow to use\n----------\n\nYou need [node.js](http://nodejs.org/) installed.\n\nAvrodoc can be used in two modes of operation:\n\n* As a command-line tool, taking one or more Avro schema files, and generating a self-contained HTML\n  file that you can put on a web server, send by email, check into your repository, etc.\n* As a Node.js web app, serving documentation for any Avro schema files you put in in the server's\n  `schemata` directory.\n\nTo run as a command-line tool:\n\n    $ npm install avrodoc -g\n    $ avrodoc [my-schema.avsc [another-schema.avsc...]] [-o=my-documentation.html] [\u003e my-documentation.html] [-- my-schema.avsc [another-schema.avsc]]\n    # open my-documentation.html in a web browser\n\nTo run as a web app:\n\n    $ git clone git://github.com/ept/avrodoc.git\n    $ cd avrodoc\n    # put your schema files in the schemata/ directory\n    $ npm update\n    $ node app\n    # open http://localhost:8124/ in a web browser\n\nIf you want to change the schema file directory, set the `SCHEMA_DIR` environment variable. If you\nwant to use a port other than 8124, set the `PORT` environment variable. The app is ready to deploy\nto [Heroku](http://www.heroku.com/): add your schema files to the `schemata` directory, commit,\nthen run `heroku create \u0026\u0026 git push heroku master`.\n\n\nFeatures\n--------\n\n* Excellent for getting an overview of a complex schema with many nested records\n* Support for [Markdown](http://daringfireball.net/projects/markdown/syntax) in doc strings, so you\n  can add links, emphasis etc.\n* Detects duplicate definitions of types across schema files, and does the right thing\n* Fully compatible with Avro IDL 1.7.3\n\n\nTesting\n-------\n\nTo run the browser tests locally on your machine:\n\n1. Download the [ChromeDriver server](https://code.google.com/p/chromedriver/downloads/list) for\n   your OS, and put it in your `$PATH`.\n2. Download the standalone [Selenium server](https://code.google.com/p/selenium/downloads/list).\n3. Run Selenium server: `java -jar selenium-server-standalone-$VERSION.jar`\n4. Run the Avrodoc web app: `node app`\n5. Run the tests: `grunt selenium`\n\nTo run the browser tests remotely in the cloud:\n\n1. Sign up for a free account at [Sauce Labs](https://saucelabs.com/).\n2. Download [Sauce Connect](https://saucelabs.com/docs/connect).\n3. Run Sauce Connect, providing the username and API key of your account:\n   `java -jar Sauce-Connect.jar -P 4444 $USERNAME $API_KEY`.\n4. Run the Avrodoc web app: `node app`\n5. Run the tests: `grunt selenium`\n\nMeta\n----\n\nCopyright 2012 Martin Kleppmann. Licensed under the Apache License, Version 2.0.\nSee `LICENSE` for details. Thanks to contributors:\n\n* [Micah Huff](https://github.com/mphuff) ([Inome, Inc.](https://github.com/inome))\n\nPull requests welcome.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fept%2Favrodoc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fept%2Favrodoc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fept%2Favrodoc/lists"}