npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

avrodoc

v0.3.0

Published

Documentation tool for Avro schemas

Downloads

193

Readme

Avrodoc

Avrodoc is a documentation tool for Avro schemas. It reads schemas in Avro's JSON schema format -- *.avsc files -- and renders them nicely in a web browser.

Take a look at the example, which is generated from this schema.

Why? Because your data type definitions are your most important API... and you would never make an API without good documentation, would you?

How to use

You need node.js installed.

Avrodoc can be used in two modes of operation:

  • As a command-line tool, taking one or more Avro schema files, and generating a self-contained HTML file that you can put on a web server, send by email, check into your repository, etc.
  • As a Node.js web app, serving documentation for any Avro schema files you put in in the server's schemata directory.

To run as a command-line tool:

$ npm install avrodoc -g
$ avrodoc my-schema.avsc [another-schema.avsc...] > my-documentation.html
# open my-documentation.html in a web browser

To run as a web app:

$ git clone git://github.com/ept/avrodoc.git
$ cd avrodoc
# put your schema files in the schemata/ directory
$ npm update
$ node app
# open http://localhost:8124/ in a web browser

If you want to change the schema file directory, set the SCHEMA_DIR environment variable. If you want to use a port other than 8124, set the PORT environment variable. The app is ready to deploy to Heroku: add your schema files to the schemata directory, commit, then run heroku create && git push heroku master.

Features

  • Excellent for getting an overview of a complex schema with many nested records
  • Support for Markdown in doc strings, so you can add links, emphasis etc.
  • Detects duplicate definitions of types across schema files, and does the right thing

Meta

Copyright 2012 Martin Kleppmann. Licensed under the Apache License, Version 2.0. See LICENSE for details.

Pull requests welcome.