New open source project: archivist - Generates data structure definitions from JSON files for any kind of programming language

Archivist generates data structure definitions from JSON files for any kind of programming language. It also provides a library for golang to reduce the job of managing runtime configs down to just several lines of code.

Features

Code Generator

  • Guess out the most suitable data type for arbitrary JSON field
  • Customize data type via .meta file. E.g. replace struct with map[string]…
  • Support extended data types via .meta file, including reference, datetime, duration and i18n
  • Process .js file in addition to .json file, which is much friendly to edit manually
  • Show all node paths and data types with the ‘paths’ subcommand
  • Detect and drop orphan generated files with the ‘orphan’ subcommand
  • Customize code templates, by which any programming language can benefit from

Library

  • Load all .json files with only several lines of code
  • Select config group and subgroup at runtime
  • Support all kinds of config overwriting manners: file-level, content-level, in-memory, etc.
  • Support extended data types, including reference, datetime, duration and i18n
  • Support hot reload (atomically switch to a whole new config collection)
  • Support hot patching
  • Support backward compatibility check
  • Support whitelist and blacklist
  • Support config extension, which stores organized configs
  • Thread-safe

For more information, please goto https://github.com/kingsgroupos/archivist