Comparison of Implementations

I currently maintain four different implementations of RiveScript, and some are better maintained than others. I'll try to keep this page up-to-date to include the differences in support between the different implementations, and use it as reference for eventually fixing these problems so they all support the same features of RiveScript.

In general, the order of priority for me adding features to RiveScript comes in this order: Perl, Python, JavaScript, and finally Java. At the time of writing this sentence, Python has a few features over Perl, and that's largely because I wrote the Python version second and thought of these ideas as I went. Sometimes the Python version will get a new feature before Perl, due to the popularity of the programming language in general.

I'll organize this list by feature, and list the implementations that support it, rather than the other way around. Features that were present "since 1.0" don't have links to the commits on GitHub.

  • Unicode/UTF-8 Support
    Allows using foreign characters in triggers, loosens up the filtering of input messages, also allows for the user to tell the bot their e-mail address without the @ and dot symbols being removed. Where supported, the feature is considered experimental and is not enabled by default.
  • Punctuation stripping in UTF-8 mode
    Strips common punctuation characters from input messages when UTF-8 mode is active. Provides a way for the user to override this regexp if they need to change the definition of what a punctuation character is.
  • Shortcut tags <input> and <reply> in Triggers
    Shortcuts for <input1> and <reply1>, respectively. This is for trigger lines only, not replies. For example, + <input>
    • Python
    • Perl
    • JavaScript
    • Go
  • Setter tags for <bot> and <env>
    Lets you use <bot name=value> or <env name=value> to set variables, similar to the <set> tag.
    • Python
    • Perl
    • JavaScript
    • Go
  • Multiple Redirects
    Ssimilar to multiple replies; puts redirects and replies into the same bucket for random selection. Acts as a shortcut to using - {@another trigger}
    • Java

Web design and content copyright © 2024 Noah Petherbridge.