Abstract algebra for Scala. This code is targeted at building aggregation systems (via Scalding or Apache Storm). It was originally developed as part of Scalding's Matrix API, where Matrices had values which are elements of Monoids, Groups, or Rings. Subsequently, it was clear that the code had broader application within Scalding and on other projects within Twitter.
See the Algebird website for more information.
> sbt algebird-core/console
Welcome to Scala 2.12.14 (OpenJDK 64-Bit Server VM, Java 11.0.1).
Type in expressions for evaluation. Or try :help.
scala> import com.twitter.algebird._
import com.twitter.algebird._
scala> import com.twitter.algebird.Operators._
import com.twitter.algebird.Operators._
scala> Map(1 -> Max(2)) + Map(1 -> Max(3)) + Map(2 -> Max(4))
res0: scala.collection.immutable.Map[Int,com.twitter.algebird.Max[Int]] = Map(2 -> Max(4), 1 -> Max(3))
In the above, the class Max[T]
signifies that the +
operator should actually be max
(this is accomplished by providing an implicit instance of a typeclass for Max
that handles +
).
To learn more and find links to tutorials and information around the web, check out the Algebird website.
The latest API docs are hosted on Algebird's ScalaDoc index.
Pull requests and bug reports are always welcome! Check out our Contributing guide for information on what we most need help with and how you can get started contributing.
Discussion occurs primarily on the Algebird Gitter channel:
We also monitor the Algebird mailing list.
Issues should be reported on the GitHub issue tracker.
We use a lightweight form of project governance inspired by the one used by Apache projects.
Please see Contributing and Committership for our code of conduct and our pull request review process.
The TL;DR is send us a pull request, iterate on the feedback + discussion, and get a +1 from a Committer in order to get your PR accepted.
The current list of active committers (who can +1 a pull request) can be found here: Committers
A list of contributors to the project can be found here: Contributors
Algebird modules are available on maven central. The current groupid and version for all modules is, respectively, "com.twitter"
and 0.13.5
.
See Algebird's page on the Scaladex for information on all published artifacts and their associated Scala versions. Algebird currently supports Scala 2.10, 2.11 and 2.12.
Other projects built with Algebird, as compiled by the Scaladex:
Copyright 2016 Twitter, Inc.
Licensed under the Apache License, Version 2.0.
YourKit supports open source projects with innovative and intelligent tools for monitoring and profiling Java and .NET applications. YourKit is the creator of YourKit Java Profiler, YourKit .NET Profiler, and YourKit YouMonitor.