A modern dialogue executor and tree parser using YAML.
This crate is for building(ex), importing/exporting(ex), and walking(ex) dialogue trees.
convo
promises an emphasis on documentation and user-friendliness, but also performance. All retrievals, searches, and side-effects to the conversation tree are in O(1) constant time.
The intent is to safely import and export conversation trees, as well as walk complex conversations easily and efficiently. Conversations resemble a traditional dialogue tree model, and can be cyclic. YAML format makes creating dialogue trees intuitive and easy, even without a formal editor (but a GUI editor will come eventually).
convo
is usable and in active development. Future releases will follow SemVer compatibility.
The easiest way to use convo is by adding the lone dependency to your Cargo.toml
file:
convo = "0.1.2"
- Tree - the parent container for a conversation tree.
- Node - a node in a conversation tree which acts as a fork of decisions by wrapping prompting dialogue and a list of path options (called
Link
s). - Link - a uni-directional path to a [
Node
].
Check out these important examples:
- Building a conversation
Tree
imperatively - Importing/Exporting
*.convo.yml
files - Walking a conversation
Tree
For specific rules and formatting information, please check FORMATTING.md
Don't hesitate to file an issue or contact @simbleau by e-mail or @ThomasHoutart by e-mail.
I encourage all contributions by pull request. Please check the issues first if you'd like to help.
The Rust code of conduct applies.
- Create examples using the
serde-yaml
crate for serialization and deserialization. - Create a GUI for editing and creating convo files.
This project is dual-licensed under both Apache 2.0 and MIT licenses.