π lorax: Go Concurrency with Functional/Reactive Extensions

π° Introduction
Reactive extensions for go (limited set of functionality as required by snivilised)
This project has been setup for the currency needs of snivilised projects. However, that is not to say it is not suitable for other 3rd party projects; it's just that lorax may not suit their needs.
Ordinarily, I would have used RxGo for reactive functionality, but it is currently not in a working state and seems to be abandoned. So lorax will aim to fill the gap, but will only implement the functionality required by snivilised projects (in particular extendio, which requires the ability to navigate a directory tree concurrently).
The intention is to combine the functional implementation in lo with reactive functionality in RxGo using generics. Further analysis may reveal this lo will not be required, but this will be discovered as implementation progresses.
lorax will also provide concurrent functionality via an abstraction that implements the worker pool pattern.
π Usage
π€ tbd
π Features
π¨ Developer Info
βοΈ Github changes
Some general project settings are indicated as follows:
General
Under Pull Requests
Allow merge commits
π³ DISABLE
Allow squash merging
π³ DISABLE
Allow rebase merging
β
ENABLE
Branch Protection Rules
Under Protect matching branches
Require a pull request before merging
β
ENABLE
Require linear history
β
ENABLE
Do not allow bypassing the above settings
β
ENABLE
βοΈ Code coverage
coveralls.io
: add maestro project
π l10n Translations
This module has been setup to support localisation. The default language is en-GB
with support for en-US
. There is a translation file for en-US
defined as i18n/deploy/lorax.active.en-US.json. This is the initial translation for en-US
that should be deployed with the app.
Make sure that the go-i18n package has been installed so that it can be invoked as cli, see go-i18n for installation instructions.
To maintain localisation of the application, the user must take care to implement all steps to ensure translate-ability of all user facing messages. Whenever there is a need to add/change user facing messages including error messages, to maintain this state, the user must:
- define template struct (xxxTemplData) in src/i18n/messages.go and corresponding Message() method. All messages are defined here in the same location, simplifying the message extraction process as all extractable strings occur at the same place. Please see go-i18n for all translation/pluralisation options and other regional sensitive content.
For more detailed workflow instructions relating to i18n, please see i18n README