convo

Crates.ioconvo
lib.rsconvo
version0.1.2
sourcesrc
created_at2021-07-04 14:08:10.560687
updated_at2021-07-04 16:47:41.03235
descriptionA modern dialogue executor and tree parser using YAML, focusing on ease-of-use and speed.
homepagehttps://crates.io/crates/convo
repositoryhttps://github.com/simbleau/convo
max_upload_size
id418594
size65,073
Spencer C. Imbleau (simbleau)

documentation

https://docs.rs/convo

README

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.

Commit count: 171

cargo fmt