A monorepo containing utility libraries for application development. The repository is built on some basic ideas that follow throughout:
MonadReaderis a good basis for most applications as well as a good way to make dependencies for functions work across many different contexts.- MTL-style in general is how we make code easier to reuse.
- If we have lenses/prisms in mind for the code we write, we'll have an easier time using library functionality.
- Using
try,mapException,fromEither,fromEitherM, etc. makes it so that we don't have to worry so much about exactly which error interface we're using, but can decide more flexibly at the call-site what to do.
This is a standard library/prelude version of several qtility libraries as well as common exports. This includes:
RIO- Common parts of
Data.Aeson(including lenses forAesonOptions) - Re-works of
fromXfunctions that takeMaybe/Eitherand throw from them - TemplateHaskell helpers
- Utilities for dealing with environment variables/
.envfiles
qaws: Utilities for common general AWS tasks viaamazonkaqaws-sqs: Utilities for common usage of AWS Simple Queue Service (SQS).qaws-s3: Utilities for common usage of AWS Simple Storage Service (S3).qaws-sns: Utilities for common usage of AWS Simple Notification Service (SNS).qaws-dynamodb: Utilities for common usage of AWS DynamoDB.qaws-cloudwatch-logs: Utilities for common usage of AWS CloudWatch Logs.qaws-secretsmanager: Utilities for common usage of AWS Secrets Manager.qtility-db: Utilities for database interaction viapostgresql-simpleqtility-brick: Utilities for writingbrickapplications.qtility-code: Utilities for executing/interpreting Haskell code.qtility-metrics: Utilities for collecting/sending metrics via Prometheus & EKG.mortred: Utilities for web scraping/frontend testing viahs-webdriver& Selenium.
If you want to use this repository and its packages, add the following to your stack.yaml:
extra-deps:
- github: quanterall/qtility
commit: aac174d0d953a5bd04dc75c80977dc5b0e0939bf
subdirs:
- qtility
- qtility-db
- qtility-brick
- qaws
- qaws-s3Note that you probably want the latest commit.