Skip to content

AVSystem/scala-commons

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Nov 13, 2024
c01929f · Nov 13, 2024
Sep 26, 2024
Dec 9, 2020
Oct 1, 2024
Aug 5, 2024
Oct 1, 2024
Feb 28, 2024
Sep 28, 2024
Aug 5, 2024
Sep 25, 2024
Mar 19, 2024
Nov 13, 2024
Jul 18, 2024
Jul 10, 2023
Jan 29, 2021
Aug 31, 2021
Feb 23, 2016
Aug 31, 2023
Mar 18, 2023
Dec 18, 2020

Repository files navigation

AVSystem Commons Library for Scala

Continuous Integration Maven Central

API reference

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).
    • 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
    • Lightweight alternatives for Scala Option - Opt - guarantees no nulls, OptArg, NOpt, OptRef (implemented as value classes)
    • Components and Dependency Injection library
  • commons-redis - Scala driver for Redis
  • 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-jetty - Jetty server utilities
  • commons-mongo - MongoDB utilities for Scala & Java MongoDB drivers, integration with GenCodec
  • commons-hocon - Utilities for working with HOCON
    • HoconInput - an Input implementation for GenCodec that 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