• This repository has been archived on 21/May/2018
  • Stars
    star
    185
  • Rank 190,856 (Top 5 %)
  • Language
    Scala
  • Created over 9 years ago
  • Updated almost 6 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Rapture

Rapture

Build Status Maven Central License Gitter Javadocs

Rapture is an evolving collection of useful libraries for solving common, everyday programming tasks, using advanced features of Scala to offer better type-safety through powerful APIs that all Scala developers, beginners and advanced users, should find intuitive.

Rapture consists of a number of modules, the most notable of which are:

  • Core (core) โ€” a library of common utilities for other projects, notably modes and the Result type
  • JSON (json) โ€” comprehensive support for working with JSON data
  • XML (xml) โ€” comprehensive, but experimental, support for working with XML data
  • I/O (io) โ€” I/O (network, filesystem) functionality and infrastructure
  • I18n (i18n) โ€” simple, typesafe representation of internationalized strings
  • CLI (cli) โ€” support for working with command-line applications and shell interaction

Themes in Rapture

The Rapture modules share a common philosophy that has evolved over time and experience. Here are a few of the philosophical themes crosscutting all of the Rapture modules.

  • A primary goal of intuitive, readable APIs and minimal code repetition
  • Extreme type-safety, with a goal to reduce the surface area of code exposed to runtime exceptions
  • Thoroughly typeclass-driven design, for extensibility
  • Fearless exploitation of all Scala features, where (but only where) it is appropriate
  • Agnostic support for multiple, alternative implementations of many operations with pluggable backends
  • Extensive, but principled, usage of implicits to configure and constrain operations
  • Support for modes in most APIs; the ability to change how failures are handled through return types

Availability

Snapshots of Rapture are available for Scala 2.10 and 2.11 under the Apache 2.0 License in the Sonatype Snapshots repository, with group ID com.propensive and artifact ID rapture-[module], where module is the name of the module, as taken from the list above.

Development work to get most Rapture modules working on Scala.JS is ongoing.

You can build and run Rapture locally by cloning this repository and running sbt publishLocal.

Contributing

Rapture openly welcomes contributions! We would love to receive pull requests of bugfixes and enhancements from other developers. To avoid potential wasted effort, bugs should first be reported on the Github issue tracker, and it's normally a good idea to talk about enhancements on the Gitter channel before embarking on any development.

Alternatively, just send Jon Pretty (@propensive) a tweet to start a conversation.

Current contributors include:

  • Jon Pretty
  • Raรบl Raja Martรญnez
  • Alistair Johnson

Documentation

Rapture's documentation is currently sparse, though we are working to improve this.

More Repositories

1

fury-old

A new build tool for JVM languages
Scala
406
star
2

contextual

Statically-checked string interpolation in Scala
Scala
244
star
3

kaleidoscope

Statically-checked inline matching on regular expressions in Scala
Scala
160
star
4

probably

To probe what we can't prove, so the unprovable may become probable; testing for Scala
Scala
56
star
5

mercator-old

Automatic typeclass-based abstraction over monad-like types
Scala
54
star
6

totalitarian

Totalitarian: typesafe data structures for working with total functions
Scala
49
star
7

mutatus

Lightweight API for working with cloud data
Scala
41
star
8

impromptu

Lightweight and typesafe asynchronous computation graphs
Scala
41
star
9

one

A platform of libraries for Scala 3
Shell
28
star
10

adversaria

Typeclass interfaces to access user-defined Scala annotations
Scala
24
star
11

xylophone

Working with XML in Scala
Scala
23
star
12

gastronomy

Simple generically-derived cryptographic functions for Scala
Scala
18
star
13

pyroclastic

Functional dataflow through composable computations
Scala
18
star
14

cosmopolite

Typesafe internationalization of strings in Scala
Scala
17
star
15

polyvinyl

Typesafe record types for Scala
Scala
16
star
16

fury

A build tool for Scala
Scala
11
star
17

guillotine

Making the execution of system processes easier in Scala
Scala
10
star
18

exoskeleton

Interfaces for interacting with the shell from Scala
Scala
10
star
19

quarantine

Safe and total handling of domain-specific exceptions
Scala
9
star
20

caesura

Simple parsing of CSV into case classes in Scala
Scala
9
star
21

acyclicity

Monadic directed acyclic graph datastructures for Scala
Scala
8
star
22

escritoire

A library for writing tables for Scala
Scala
7
star
23

scintillate

A lightweight HTTP client and server for the Loom generation using Scala
Scala
7
star
24

wisteria

Easy, fast, transparent generic derivation of typeclass instances in Scala
Scala
6
star
25

iridescence

Sophisticated representation of color in Scala
Scala
5
star
26

optometry

Universal lenses with intuitive syntax
Scala
5
star
27

rudiments

A collection of basic, useful methods to complement the Scala stardard library
Scala
5
star
28

honeycomb

A lightweight and typesafe DSL for embedding HTML in Scala code
Scala
4
star
29

profanity

A library for realtime interactive terminal software in Scala
Scala
4
star
30

harlequin

Syntax highlighting for Scala code
Scala
4
star
31

scalaworld

Scala World website
Scala
3
star
32

tarantula

Drive a web browser with the WebDriver protocol for Scala
Scala
3
star
33

ferocity

TypeScript
3
star
34

turbulence

Simple tools for working with data streams in LazyLists in Scala
Scala
2
star
35

codl

The COllaborative Data Language is a lightweight data definition language for human/computer collaboration
Shell
2
star
36

cataclysm

Typesafe CSS in Scala
Scala
2
star
37

galilei

Simple interfaces for I/O operations in Scala
Scala
2
star
38

umbrageous

Scala compiler plugin to shade packages at compiletime
Scala
2
star
39

serpentine

Precise navigation of path structures in Scala
Scala
2
star
40

merino

A JSON parser and AST
Scala
2
star
41

savagery

Scalable Vector Graphics for Scala
Scala
2
star
42

eucalyptus

Versatile logging with static configuration for Scala
Scala
2
star
43

telekinesis

A lightweight URI representation and HTTP client
Scala
2
star
44

anticipation

Minimal typeclass definitions for seamless integration without hard dependencies for Scala
Scala
2
star
45

gossamer

Lightweight and typesafe strings in Scala
Scala
2
star
46

wrath

Simplistic build script for bootstrapping Scala projects
Shell
2
star
47

mitigation

Mitigation
Scala
2
star
48

scala3-training

Scala
1
star
49

quantitative

Statically-checked physical units with seamless syntax
Scala
1
star
50

punctuation

Typesafe parsing and rendering of markdown in Scala
Scala
1
star
51

panopticon

Versatile and composable lenses for Scala
Scala
1
star
52

plutocrat

Typesafe representations of monetary values in Scala
Scala
1
star
53

spectacular

Scala typeclasses for rendering different types as text to different audiences
Scala
1
star
54

nextgen-scala

Makefile
1
star
55

jacinta

Simple interfaces for reading, processing and writing JSON in Scala
Scala
1
star
56

larceny

Scala 3 compiler plugin for testing compiler errors
Scala
1
star
57

mercator

Autogeneration of functor and monad instances for Scala types
Scala
1
star