• This repository has been archived on 21/May/2018
  • Stars
    star
    183
  • Rank 210,154 (Top 5 %)
  • Language
    Scala
  • Created over 10 years ago
  • Updated almost 7 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
413
star
2

contextual

Statically-checked string interpolation in Scala
Scala
245
star
3

kaleidoscope

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

probably

To probe what we can't prove, so the unprovable may become probable; testing for Scala
Scala
55
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

impromptu

Lightweight and typesafe asynchronous computation graphs
Scala
41
star
8

mutatus

Lightweight API for working with cloud data
Scala
40
star
9

one

A platform of libraries for Scala 3
Shell
33
star
10

xylophone

Working with XML in Scala
Scala
24
star
11

adversaria

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

gastronomy

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

polyvinyl

Typesafe record types for Scala
Scala
18
star
14

pyroclastic

Functional dataflow through composable computations
Scala
18
star
15

cosmopolite

Typesafe internationalization of strings in Scala
Scala
18
star
16

fury

A build tool for Scala
Scala
16
star
17

guillotine

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

exoskeleton

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

caesura

Simple parsing of CSV into case classes in Scala
Scala
11
star
20

quarantine

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

acyclicity

Monadic directed acyclic graph datastructures for Scala
Scala
9
star
22

escritoire

A library for writing tables for Scala
Scala
9
star
23

scintillate

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

wisteria

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

rudiments

A collection of basic, useful methods to complement the Scala stardard library
Scala
6
star
26

profanity

A library for realtime interactive terminal software in Scala
Scala
6
star
27

iridescence

Sophisticated representation of color in Scala
Scala
5
star
28

honeycomb

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

optometry

Universal lenses with intuitive syntax
Scala
5
star
30

harlequin

Syntax highlighting for Scala code
Scala
5
star
31

turbulence

Simple tools for working with data streams in LazyLists in Scala
Scala
4
star
32

eucalyptus

Versatile logging with static configuration for Scala
Scala
4
star
33

merino

A JSON parser and AST
Scala
4
star
34

scalaworld

Scala World website
Scala
3
star
35

cataclysm

Typesafe CSS in Scala
Scala
3
star
36

umbrageous

Scala compiler plugin to shade packages at compiletime
Scala
3
star
37

serpentine

Precise navigation of path structures in Scala
Scala
3
star
38

galilei

Simple interfaces for I/O operations in Scala
Scala
3
star
39

ethereal

Run Scala applications as daemons
Scala
3
star
40

punctuation

Typesafe parsing and rendering of markdown in Scala
Scala
3
star
41

savagery

Scala-ble Vector Graphics
Scala
3
star
42

ferocity

TypeScript
3
star
43

jacinta

Simple interfaces for reading, processing and writing JSON in Scala
Scala
3
star
44

telekinesis

A lightweight URI representation and HTTP client
Scala
3
star
45

bifurcate

Deserialize binary data in Scala
Scala
3
star
46

anticipation

Minimal typeclass definitions for seamless integration without hard dependencies for Scala
Scala
3
star
47

nettlesome

Typesafe representations of network concepts in Scala
Scala
2
star
48

dissonance

An implementation of Myers' diff algorithm for Scala
Scala
2
star
49

tarantula

Drive a web browser with the WebDriver protocol for Scala
Scala
2
star
50

plutocrat

Typesafe representations of monetary values in Scala
Scala
2
star
51

panopticon

Versatile and composable lenses for Scala
Scala
2
star
52

quantitative

Statically-checked physical units with seamless syntax
Scala
2
star
53

spectacular

Scala typeclasses for rendering different values as text for different audiences
Scala
2
star
54

gossamer

Lightweight and typesafe strings in Scala
Scala
2
star
55

larceny

Scala 3 compiler plugin for testing compiler errors
Scala
2
star
56

wrath

Simplistic build script for bootstrapping Scala projects
Shell
2
star
57

mitigation

Mitigation
Scala
2
star
58

feudalism

Controlled borrowing of mutable values for safe concurrency
Scala
2
star
59

mercator

Autogeneration of functor and monad instances for Scala types
Scala
2
star
60

superlunary

Exploiting lightweight modular staging in Scala
Scala
2
star
61

parasite

Structured asynchronous task management in Scala
Scala
2
star
62

escapade

Adventures in ANSI escape codes in Scala
Scala
2
star
63

embarcadero

Management of Docker containers for Scala
Scala
2
star
64

vacuous

A simple representation of optional values
Scala
2
star
65

hypotenuse

A rigorous and consistent foundation for numerical and arithmetic programming
Scala
2
star
66

codl

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

nextgen-scala

Makefile
1
star
68

scala3-training

Scala
1
star
69

anthology

A typesafe interface to the Scala compiler
Scala
1
star
70

zeppelin

Work with ZIP files in Scala
Scala
1
star
71

cellulose

A comprehensive Scala library for working with CoDL files
Scala
1
star
72

mosquito

Typesafe vector algebra for Scala
Scala
1
star
73

imperial

Access UNIX's standard directory structure from Scala
Scala
1
star
74

inimitable

UUIDs for Scala
Scala
1
star
75

oubliette

Quickly launch new JVMs by remote control from Scala
Shell
1
star
76

hyperbole

Assintance with Scala 3 metaprogramming
Scala
1
star
77

dendrology

Rendering of trees and DAGs in the console
Scala
1
star
78

nectary

Automatic OpenAPI endpoint generation
Scala
1
star
79

camouflage

Caching data structures for Scala
Scala
1
star
80

aviation

Representations of time, in its various forms, for Scala
Scala
1
star
81

villainy

Record types from JSON schemata in Scala
Scala
1
star
82

digression

Utilities for working with exceptions in Scala
Scala
1
star
83

amok

A comprehensive API documentation system
Scala
1
star
84

frontier

Scala
1
star
85

gesticulate

Safe representations of MIME types in Scala
Scala
1
star
86

coaxial

Socket handling for Scala
Scala
1
star
87

modicum

Scala
1
star
88

aristotle

A library and language for producing MathML
Scala
1
star
89

charisma

Represent chemical formulae in Scala
Scala
1
star
90

chiaroscuro

Provides structural comparisons between values
Scala
1
star
91

cardinality

Dependently-typed range-checked numbers for Scala
Scala
1
star
92

baroque

Make coding with complex numbers more real
Scala
1
star
93

hieroglyph

Calculate Unicode character display widths in Scala
Scala
1
star
94

ambience

Safely access environment variables and system properties in Scala
Scala
1
star
95

abacist

Calculations with non-decimal units and mixed bases
Scala
1
star
96

symbolism

A general mechanism to implement overloaded symbolic operators in Scala
Scala
1
star
97

octogenarian

Common Git operations for Scala
Scala
1
star
98

hellenism

Classpath management facilities for Scala
Scala
1
star
99

hallucination

A library for working with images in Scala
Scala
1
star
100

typonym

Collections raised to the type-level in Scala
Scala
1
star