NOTE This library is available to the public but it's mostly used internally at AVSystem. Therefore, API may frequently change in an incompatible way.
commons-core- basic language utilities and generic features not associated with any particular library of framework:GenCodec: format-agnostic, typeclass based serialization framework with automatic typeclass derivation for case classes and sealed hierarchies- Typesafe RPC/proxy framework used in particular by Udash Framework for client-server communication
- REST framework based on RPC framework
- Better enumeration support for Scala -
ValueEnum,SealedEnumCompanion,NamedEnumCompanion,OrderedEnum - Java interoperability utilities -
JavaInterop - Google Guava interoperability utilities (dependency on Guava is optional)
- Various Scala language-level utilities
- Implicit source information objects -
SourceInfo - More concise aliases for Scala collection types -
CollectionAliases - Universal extension methods -
SharedExtensions
- Implicit source information objects -
- Lightweight alternatives for Scala
Option-Opt- guarantees nonulls,OptArg,NOpt,OptRef(implemented as value classes)
commons-redis- Scala driver for Rediscommons-akka- Akka utilities, primarilyAkkaRPCFrameworkwhich supports methods returning MonixObservablescommons-macroscontains implementations of macros used in other modules and reusable macro utilities:MacroCommonstrait with several convenience functions for implementing macrosTypeClassDerivation- 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 codecommons-annotations- contains annotations used by macros and static analyzercommons-jetty- Jetty server utilitiescommons-mongo- MongoDB utilities for Scala & Java MongoDB drivers, integration withGenCodeccommons-kafka- Kafka utilitiescommons-spring- Spring framework utilities:HoconBeanDefinitionReader- an utility that allows you to define Spring application context using HOCON format
- Introduce your changes
- Write some unit tests
- Bump the version number in
version.sbtfile - Submit a pull request
- Publish the artifact locally
- Use
sbt publishLocalfor projects managed by Ivy (e.g. SBT projects) - Or
sbt publishM2for projects managed by maven
- Use
- Update avsystem-commons dependency version in your project and refresh your project dependencies