Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/spotify/magnolify
A collection of Magnolia add-on modules
https://github.com/spotify/magnolify
avro bigquery bigtable cats datastore guava magnolia neo4j parquet protobuf scala scalacheck tensorflow
Last synced: 27 days ago
JSON representation
A collection of Magnolia add-on modules
- Host: GitHub
- URL: https://github.com/spotify/magnolify
- Owner: spotify
- License: apache-2.0
- Created: 2019-10-16T17:22:31.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2024-05-22T10:30:34.000Z (6 months ago)
- Last Synced: 2024-05-22T11:28:24.382Z (6 months ago)
- Topics: avro, bigquery, bigtable, cats, datastore, guava, magnolia, neo4j, parquet, protobuf, scala, scalacheck, tensorflow
- Language: Scala
- Homepage: https://spotify.github.io/magnolify
- Size: 4.25 MB
- Stars: 159
- Watchers: 21
- Forks: 27
- Open Issues: 25
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
magnolify
=========[![Build Status](https://github.com/spotify/magnolify/actions/workflows/ci.yml/badge.svg)](https://github.com/spotify/magnolify/actions/workflows/ci.yml)
[![codecov.io](https://codecov.io/github/spotify/magnolify/coverage.svg?branch=master)](https://codecov.io/github/spotify/magnolify?branch=master)
[![GitHub license](https://img.shields.io/github/license/spotify/magnolify.svg)](./LICENSE)
[![Maven Central](https://img.shields.io/maven-central/v/com.spotify/magnolify-shared_2.13.svg)](https://maven-badges.herokuapp.com/maven-central/com.spotify/magnolify-shared_2.13)
[![Scala Steward badge](https://img.shields.io/badge/Scala_Steward-helping-brightgreen.svg?style=flat&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAQCAMAAAARSr4IAAAAVFBMVEUAAACHjojlOy5NWlrKzcYRKjGFjIbp293YycuLa3pYY2LSqql4f3pCUFTgSjNodYRmcXUsPD/NTTbjRS+2jomhgnzNc223cGvZS0HaSD0XLjbaSjElhIr+AAAAAXRSTlMAQObYZgAAAHlJREFUCNdNyosOwyAIhWHAQS1Vt7a77/3fcxxdmv0xwmckutAR1nkm4ggbyEcg/wWmlGLDAA3oL50xi6fk5ffZ3E2E3QfZDCcCN2YtbEWZt+Drc6u6rlqv7Uk0LdKqqr5rk2UCRXOk0vmQKGfc94nOJyQjouF9H/wCc9gECEYfONoAAAAASUVORK5CYII=)](https://scala-steward.org)A collection of [Magnolia](https://github.com/propensive/magnolia) add-ons for common type class derivation, data type conversion, etc.; a simpler and faster successor to [shapeless-datatype](https://github.com/nevillelyh/shapeless-datatype).
# Modules
This library includes the following modules.
- `magnolify-avro` - conversion between Scala types and [Apache Avro](https://github.com/apache/avro) `GenericRecord`
- `magnolify-bigquery` - conversion between Scala types and [Google Cloud BigQuery](https://cloud.google.com/bigquery/) `TableRow`
- `magnolify-bigtable` - conversion between Scala types and [Google Cloud Bigtable](https://cloud.google.com/bigtable) to `Mutation`, from `Row`
- `magnolify-cats` - type class derivation for [Cats](https://github.com/typelevel/cats), specifically
- [`Eq[T]`](https://typelevel.org/cats/api/cats/kernel/Eq.html)
- [`Hash[T]`](https://typelevel.org/cats/api/cats/kernel/Hash.html)
- [`Semigroup[T]`](https://typelevel.org/cats/api/cats/kernel/Semigroup.html), [`CommutativeSemigroup[T]`](https://typelevel.org/cats/api/cats/kernel/CommutativeSemigroup.html), [`Band[T]`](https://typelevel.org/cats/api/cats/kernel/Band.html)
- [`Monoid[T]`](https://typelevel.org/cats/api/cats/kernel/Monoid.html), [`CommutativeMonoid[T]`](https://typelevel.org/cats/api/cats/kernel/CommutativeMonoid.html)
- [`Group[T]`](https://typelevel.org/cats/api/cats/kernel/Group.html), [`CommutativeGroup[T]`](https://typelevel.org/cats/api/cats/kernel/CommutativeGroup.html)
- `magnolify-datastore` - conversion between Scala types and [Google Cloud Datastore](https://cloud.google.com/datastore/) `Entity`
- `magnolify-guava` - type class derivation for [Guava](https://guava.dev)
- [`Funnel[T]`](https://guava.dev/releases/snapshot-jre/api/docs/com/google/common/hash/Funnel.html)
- `magnolify-neo4j` - conversion between Scala types and [Value](https://neo4j.com/docs/driver-manual/1.7/cypher-values/)
- `magnolify-parquet` - support for [Parquet](http://parquet.apache.org/) columnar storage format.
- `magnolify-protobuf` - conversion between Scala types and [Google Protocol Buffer](https://developers.google.com/protocol-buffers/docs/overview) `Message`
- `magnolify-refined` - support for simple refinement types from [Refined](https://github.com/fthomas/refined).
- `magnolify-scalacheck` - type class derivation for [ScalaCheck](https://github.com/typelevel/scalacheck)
- [`Arbitrary[T]`](https://github.com/typelevel/scalacheck/blob/master/doc/UserGuide.md#universally-quantified-properties)
- [`Cogen[T]`](https://github.com/typelevel/scalacheck/blob/master/src/main/scala/org/scalacheck/Cogen.scala)
- `magnolify-tensorflow` - conversion between Scala types and [TensorFlow](https://www.tensorflow.org/) `Example`# Usage
See [micro-site](https://spotify.github.io/magnolify/) for documentation.
# How to Release
Magnolify automates releases using [sbt-ci-release](https://github.com/sbt/sbt-ci-release) with Github Actions. Simply push a new tag:
```shell
git tag -a v0.1.0 -m "v0.1.0"
git push origin v0.1.0
```Note that the tag version MUST start with `v` to be picked up as the release version.
# License
Copyright 2019-2021 Spotify AB.
Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0