It's always a good practice to make your software do one thing only and do it well. It usually results in less complex code that is easier to maintain. So instead of having one application that is able to do 5 totally different things it is better to develop 5 different applications. If an application needs the help of another it can always ask. This introduction is a basic decription of the actor model principles. The baobab repository was created to facilitate applying the actor model principles to your codebase.
If you want to know more about baobab make sure to through the documentation under manual.
Baobab has the following dependencies:
- redis
- crystallib
As previously mentioned baobab has a dependency towards crystallib. You should therefore pull the repository and install it:
git clone -b development https://github.com/freeflowuniverse/crystallib.git
cd crystallib
bash install.sh
Next you'll have to install baobab:
bash install.sh
Now that you installed the V dependencies you can start running tests. The tests will use the redis running on port 6379 so make sure it is running before running the tests:
sudo systemctl start redis-server
Now run the tests with this command (we cannot run tests in parallel so make sure to pass the environment variable VJOBS=1):
VJOBS=1 v -stats test .
You will find examples under examples. Although they are not real use cases they show the capabilities of baobab.
Here are some real life use cases:
You can generate the documentation by running the bash script doc.sh. This will generate the documentation under docs which you can open in your browser. It also generates the V manual under docs/V/.
bash doc.sh
When working on this repository please follow these rules:
- Create a branch if you need to modify things on the repository
- Always add tests when implementing a new feature
- Create a PR for merging your branch
- Assign reviewer(s) to your PRs
- Only merge if reviewers have approved and CI is green
- Create the necessary documentation or modify existing documentation under manual