v0.1.0
Summary
We're pleased to announce the first release of reclass-rs
: v0.1.0
.
Reclass-rs is a Rust implementation of Reclass which is based on the Reclass fork maintained by kapicorp. The Reclass implementation provided in this repository can be used both from other Rust programs and in Python programs. The reclass-rs Python module is implemented directly in Rust with PyO3.
Please note that this implementation doesn't yet support all the features and extensions which are availble in Kapitan Reclass. However, for features which are implemented, we aim to be compatbile with Kapitan Reclass.
The implementation currently supports the following features of Kapicorp Reclass:
- The Reclass options
nodes_path
andclasses_path
- The Reclass option
ignore_class_notfound
- Escaped parameter references
- Merging referenced lists and dictionaries
- Constant parameters
- Nested references
- References in class names
- Loading classes with relative names
See the README.md
for more information.
Changes
🚀 Features
- Implement Reclass reference parsing (#2)
- Add custom list types which are suitable for Reclass's classes and
applications
arrays (#5) - Add initial
Node
andNodeInfo
types and expose node info functionality in Python module (#6) - Implement custom
Mapping
andValue
types (#8) - Add support for constant keys in our Mapping type (#9)
- Implement
std::fmt::Display
forValue
andMapping
(#10) - Add support for extending values in
Mapping::insert()
(#11) - Add support for merging a
Mapping
into anotherMapping
(#13) - Implement
ValueList
flattening (#14) - Add
Node::render()
to load and merge classes into the target node (#15) - Add support for Reclass reference interpolation (#19)
- Implement
Reclass::inventory()
and associatedInventory
type (#22) - Add empty
exports
field inNodeInfo
(#24) - Parallelize inventory rendering (#28)
- Abort reference resolution when a reference loop is detected (#32)
- Create a pure Rust API for inventory and node rendering (#35)
- Add support for escaped inventory query opening symbol (#40)
🛠️ Minor Changes
- Add more nodes and classes in the test inventory (#27)