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