Star me on GitHub


Katydid is a toolkit for trees.

Currently there are three tools in the katydid toolkit:

  • Relapse:
  • A collection of parsers which are easily extendable:
  • A collection of encoders which are useful for dynamic transcoding from any implemented parser:
    • protobuf
    • json
    • xml
    • reflected go structures

What are trees?

A tree is a structure, record, class that does not contain any loops.

Katydid has implemented parsers for multiple types of trees:

Relapse can validate these trees, since they have implemented Parsers.

Encoders can take parsers and encode (or transcode) them into other types of trees.

What is Relapse?

Relapse is a validation language. Regular expressions are used as validators for strings. RelaxNG, DTD and XSchema are validation languages for XML. JsonSchema is a validation language for JSON. Relapse can validate any tree that has an implemented parser.

Relapse Tour

Relapse Playground

What is a Katydid?

A Katydid is the common name for a leaf insect.

External Tools

Possible Futures

  • Capturing (like Regular Expression Capturing, but for trees)
  • Investigate viability of usage as a type system.
  • More serialization formats: CapnProto?, MsgPack, Thrift, Bson, Yaml, Toml …
  • Remove the one dependency on gogoprotobuf from the core Katydid repository.