lorax

module
v0.4.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 9, 2023 License: MIT

README ΒΆ

🌟 lorax: Go Concurrency with Functional/Reactive Extensions

A B A B A B Go Reference Go report Coverage Status lorax Continuous Integration pre-commit A B

πŸ”° 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

Directories ΒΆ

Path Synopsis
internal
log

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL