#tree #conversation #dialog #yaml

convo

A modern dialogue executor and tree parser using YAML, focusing on ease-of-use and speed

1 unstable release

0.1.2 Jul 4, 2021
0.1.1 Jul 4, 2021
0.1.0 Jul 4, 2021

#2743 in Parser implementations

34 downloads per month

MIT/Apache

48KB
684 lines

Conversation Tree Example

Crates.io Documentation Build Status Dependency Status

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.

Sections

Motivation

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).

State

convo is usable and in active development. Future releases will follow SemVer compatibility.

Using convo

The easiest way to use convo is by adding the lone dependency to your Cargo.toml file:

convo = "0.1.0"

Getting Started

Terminology

  • 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 Links).
  • Link - a uni-directional path to a Node.

Examples

Check out these important examples:

Formatting Rules

For specific rules and formatting information, please check FORMATTING.md

Issues

Don't hesitate to file an issue or contact @simbleau by e-mail or @ThomasHoutart by e-mail.

Contributing

I encourage all contributions by pull request. Please check the issues first if you'd like to help.

The Rust code of conduct applies.

Help needed

  • Create examples using the serde-yaml crate for serialization and deserialization.
  • Create a GUI for editing and creating convo files.

License

This project is dual-licensed under both Apache 2.0 and MIT licenses.

Dependencies

~1MB
~21K SLoC