scala-commons
scala-commons copied to clipboard
AVSystem commons library for Scala
AVSystem Commons Library for Scala
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.
Modules and features
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- built-in serialization formats include JSON (raw string), CBOR and BSON (in
commons-mongo).
- built-in serialization formats include JSON (raw string), CBOR and BSON (in
- Typesafe RPC/proxy framework used in particular by Udash Framework for client-server communication
- 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-jetty- Jetty server utilitiescommons-mongo- MongoDB utilities for Scala & Java MongoDB drivers, integration withGenCodeccommons-hocon- Utilities for working with HOCONHoconInput- anInputimplementation forGenCodecthat can read Lightbend Config (com.typesafe.config.Config)- An AST (
HTree) and a lexer/parser for HOCON (HLexer,HParser)
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.sbtfile - Submit a pull request
Test on local environment
- 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