nyan - yet another notation: typesafe hierarchical key-value database with inheritance and dynamic patching :smiley_cat:

nyan - yet another notation

just make it meta-meta-meta.

nyan is a data description language, It is a mixture of python, json, patch, java, wml, yaml and some new ideas.

It stores hierarchical objects with key-value pairs in a database with the key idea that changes in a parent affect all children.

We created nyan because there existed no suitable language to properly represent the enormous complexity of storing the data for openage.

The main focus is readability and moddability.

Thanks for the endless hours of funny discussions and thoughts about the design to all contributors.

github stars #sfttech on Freenode

The foundation of nyan:

Technology Component
C++14 nyan core
Flex Tokenizer generator
GNU Autocancer Build “system”
Humans Doing it wrong all the time

Current State of the Project


  • [X] The specification is complete but being fine-tuned
  • [X] The parser and typechecker is fully functional
  • [ ] Database queries and the C++ API

Dependencies, Building and Running

  • How do I get this to install on my box?

  • Waaaaaah! It

    • crashes
    • spams all kinds of shit on the screen
    • my girlfriend dumped me because I debugged for nights

All of those observations are intended, not bugs.

To turn them off, compile with --dont-segfault --no-errors --new-girlfriend.

If this still does not help, try the contact section or the bug tracker.

Development Process

How does contributing work here? - Extensive syncronization! - Report issues and send pull requests.

The documentation is also in this repo:

  • Code documentation is embedded in the sources for Doxygen (see doc readme).
  • Have a look at the doc directory. This folder tends to outdate when code changes.


Most of the developers hang around on our IRC channel (#sfttech on freenode.net). Do not hesitate to ping us, we might not see your message otherwise.

For all technical discussion (ideas, problems, …), use the issue tracker! It’s like a mailing list.

If it’s a problem with the usage of nyan in openage, head over there.


GNU LGPLv3 or later; see copying.md and legal/LGPLv3.

We know that probably nobody is ever gonna look at the copying.md file, but if you want to contribute code to nyan, please take the time to skim through it and add yourself to the authors list.

Related Repositories



Nyan Cat inspired RSpec formatter! ...



Nyan Cat for Emacs! Nyanyanyanyanyanyanyanyanyan! ...



Nyan Cat result printer for PHPUnit ...



Nyan Cat style reporter based on the Mocha version ...

Top Contributors

TheJJ iNaKoll castilma eaterjolly