AVSystem Commons Library for Scala

Build Status Maven Central

API reference

NOTE The library is still considered to be in early development where a lot of experiments is tried. Therefore we don't make any guarantees about backwards compatibility between versions yet.

Modules and features

  • commons-core - basic language utilities and generic features not associated with any particular library of framework:
  • commons-redis - Scala driver for Redis
  • commons-akka - Akka utilities, primarily AkkaRPCFramework which supports methods returning Monix Observables
  • commons-macros contains implementations of macros used in other modules and reusable macro utilities:
    • MacroCommons trait with several convenience functions for implementing macros
    • TypeClassDerivation - implements infrastructure for automatic type class derivation
  • commons-analyzer - static analyzer for Scala code, i.e. a compiler plugin that enforces various (mostly unrelated) rules and conventions on source code
  • commons-annotations - contains annotations used by macros and static analyzer
  • commons-jetty - Jetty server utilities
  • commons-mongo - MongoDB utilities for Scala & Java MongoDB drivers, integration with GenCodec
  • commons-kafka - Kafka utilities
  • commons-spring - Spring framework utilities:
    • HoconBeanDefinitionReader - an utility that allows you to define Spring application context using HOCON format

Development

  • Introduce your changes
  • Write some unit tests
  • Bump the version number in version.sbt file
  • Submit a pull request

Test on local environment

  • Publish the artifact locally
    • Use sbt publishLocal for projects managed by Ivy (e.g. SBT projects)
    • Or sbt publishM2 for projects managed by maven
  • Update avsystem-commons dependency version in your project and refresh your project dependencies