You can call it Parrot, Parr-Bot, Parrot Bot, is up to you
Philosophy and Design
Framework vs Library: Let’s start to define what Parr(B)ot is not: A library.
A library is a collection of function that you can use as you want* in your code, without a specific order (es. Pandas, Bootstrap).
A framework on the other hand gives you order for both files and code structure (es. Django, Angular) and tends to have more layer of abstraction.
Framework is like the nest of your project 🦜
Modular: Modules helps developer to access, reuse and expand their codes and also give a sense of order to your project that will help in the long run. The base structure of Parr(b)ot is design to be easy to maintain in the future
Makes together some part and build your own robo-parrot 🦜
Typed: We love types! They allows you to write solid codes and if the language is (like Go) compiled you will not need to do any runtime checking of the entry values.
That said sometimes having access to many types and constructor can be overwhelming this is the reason why the interface can be very handy to manage different data-structure that have similar behavior.
You can find an example of what we mean on the “incoming.go” file (inside the “message” module).
We think that biodiversity is great 🦜
Customizable: The parr(b)ot modules are not made to be untouched but the exact opposite. User is more then welcome to change the framework behavior in order for example to extend a module with more useful functions or types, to change the information carried by the Bot or to initialize the bot in a different way. Is up to you.
The framework will try to guide you using comments and naming to go at the level of deepness that you desire
Explore the jungle, is fun 🦜
Step 1. – Clone this repo (and be sure to have Go installed)
Step 2. – Create your own awesome bot (see an example on main.go)