Giter Club home page Giter Club logo

links's Introduction

links

Just a bunch of useful links

Scala

Serialization

Concurrency, Actors

Async Database Libs

  • Asyncpools - Akka-based async connection pool for Slick. Akka 2.2 / Scala 2.10.
  • Postgresql-Async - Netty-based async drivers for PostgreSQL and MySQL

Caching

  • Cacheable - a clever memoization / caching library (with Guava, Redis, Memcached or EHCache backends) using Scala 2.10 macros to remember function parameters

Big Data Processing

Spark

  • Jaws - Spark SQL REST server, includes query cancellation, logs, load balancing. Based originally on my own spark-jobserver
  • Supplemental Spark Projects - lots of other interesting projects, including IPython notebooks, dataframe stuff, stream + historical data processing, and more.

Infrastructure

Geospatial and Graph

  • GeoTrellis - distributed raster processing, adding Vector/geom support, Akka Cluster and Spark implementations!

  • Spatial framework for Hadoop - PostGIS-like operators / UDFs for Hive. We want this for Spark!

  • trails - parser combinators for graph traversal. Supports Tinker/Blueprints/Neo4j APIs.

  • scala-graph - in-memory graph API based on scala collections. Work in progress.

Collections, Numeric Processing, Fast Loops

  • Breeze, Spire, and Saddle - Scala numeric libraries
    • spire-ops - a set of macros for no-overhead implicit operator enrichment
  • ScalaXY - collection of macros for performant for loops, extension methods etc
  • Squants - The Scala API for Quantities, Units of Measure and Dimensional Analysis
  • FastTuple - a dynamic (runtime-defined) C-style struct library, with support for off-heap storage. Would work really well for in-memory queries.
    • and the excellent blog covers all of the on- and off-heap access and allocation patterns on the JVM very thoroughly.
  • Unboxing, Runtime Specialization - a cool post on how to do really fast aggregations using unboxed integers
  • product-collections - useful library for working with collections of tuples
  • SuperFastHash - also see Murmur3

Big Data Storage

  • Phantom - Scala DSL for Cassandra, supports CQL3 collections, CQL generation from data models, async API based on Datastax driver

  • Athena - Asynchronous Cassandra client built on Akka-IO

  • CCM - easily build local Cassandra clusters for testing!

  • Stubbed Cassandra - super useful for testing C* apps

  • Pithos - an S3-API-compatible object store for Cassandra

  • Sirius - Akka-based in-memory fast key-value store for JVM objects, with Paxos consistency, persistence/txn logs, HA recovery

  • Storehaus - Twitter's key-value wrapper around Redis, MySql, and other stores. Has a neat merge() functionality for aggregation of values, lists, etc.

  • MapDB - Not a database, but rather a database engine with tunable consistency / ACIDness; support for off-heap memory; fast performance; indexing and other features.

  • HPaste - a nice Scala client for HBase

  • OctopusDB paper - interesting idea of using a WAL of RDF triples as the primary storage, with secondary views of row or column orientation

Web / REST / General

  • Scalaj-http - really simple REST API. Although, the latest Spray-client has been vastly simplified as well.

  • REPL as a service - would be kick ass if integrated into Spark

  • IScala - Scala backend for IPython. Looks promising. There is also Scala Notebook but it's more of a research project.

  • Scaposer - i18n / .po file library

  • Adding Reflection to Scala Macros - example of using reflection in an annotation macro to add automatic ByteBuffer serialization to case classes :)

  • Scaldi - A lightweight dependency injection library, with Akka integration

  • How to use Typesafe Config across multiple environments

  • lamma.io - the easiest date generation library

  • Pimpathon - a set of useful pimp-my-library extensions

  • Scala-rainbow - super simple terminal color output, easier than Console.XXX

Build, Tooling

  • Run Scala scripts with dependencies - ie you don't need a project file

  • sbt-assembly 0.10.2 supports adding a shell script to your jar to make it executable! No more "java ...." to start your Scala program, and no more ps ax | grep java | grep ....

  • Other useful SBT plugins - sbt-sonatype, sbt-pom-reader, sbt-sound, plugins page

  • SCoverage - statement coverage tool, much more useful than line-based or branch-based tools. Has SBT plugin. Blog post on why it's an improvement.

  • sbt-jmh - Plugin for running SBT projects with the JMH profiling tool

  • SBT updates - Tool for discovering updated versions of SBT dependencies

  • Thyme and Parsley - microbenchmarking and profiling tools, seems useful

  • ScalaStyle - Scala style checker / linter

  • scala-abide - an official linter from Typesafe

  • utest - a small micro test framework

  • lions share - a neat JVM heap and GC analysis tool, with charts and SBT integration.

SBuild seems like a promising replacement for SBT. Still Scala, but much much simpler, more like Scala version of Make. With MVN dependency and ScalaTest support.

JVM Other

Monitoring

  • Grafana and Graphene - great replacement UIs for the clunky default Graphite UI

Databases

Indexing and OLAP

ML and Data Science

  • LearnDS - A set of IPython notebooks for learning data science

Distributed Systems

Sublime Text

I love Sublime and use it for everything, even Scala! Going to put my Sublime stuff in a separate page.

Best Practices and Design

Other Random Stuff

  • A list of great docs

  • JQ - JSON processor for the shell. Super useful with RESTful servers.

  • Underscore-CLI - a Node-JS based command line JSON parser

  • MacroPy - Scala-like macros, case classes, pattern matching, parser combos for Python (!!)

  • Scala 2.11 vs Swift - Apple's new iOS language is often compared to Scala.

  • Rust By Example - also the guide on their site is pretty good.

  • Real World OCaml

  • Gherkin - a Lisp implemented in bash !!

  • Nimrod - a neat, compile-straight-to-binary, static systems language with beautiful Python-like syntax, union types, generics, macros, first-class functions. What Go should have been.

  • Bret Victor - A set of excellent essays and talks from a great visual designer

links's People

Contributors

velvia avatar hairyfotr avatar

Watchers

Alex Henning Johannessen avatar James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.