• Stars
    star
    413
  • Rank 104,801 (Top 3 %)
  • Language
    Scala
  • License
    Apache License 2.0
  • Created about 6 years ago
  • Updated 2 months ago

Reviews

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

Repository Details

A new build tool for JVM languages

GitHub Workflow

Fury

Overview

Fury is a long-term project to create next-generation build tooling to address the greatest challenges of building software in an ever-changing environment, while maintaining the predictability, reliability and simplicity of builds.

Features

  • fully data-oriented model for builds
  • builds may be defined in terms of sources or binary dependencies
  • power to control a build and the builds of all its source dependencies
  • advanced support for conflict resolution amongst dependencies
  • intuitive command-line API, with visual interfaces available later (Milestone 3)
  • hierarchical model of builds and build distribution
  • support for compiling Scala 2.x, Scala 3, Scala.js and Java
  • composable variants of builds, for generalized cross-building (Milestone 2)
  • support for running Docker containers as part of a build (Milestone 2)
  • compilation distributed over the network (Milestone 3)
  • optionally external builds, shared independently of source code

Fury Concepts

Fury introduces a number of new concepts for developers. While full documentation is in the process of being written, a work-in-progress document provides a lot of detail on these new ideas and how they work.

Release

Fury is approaching its first public milestone release, Alecto. This will be the first release of Fury capable of building a majority of Scala projects. Fury’s future plans are described in the roadmap.

Installation

Pre-release versions of Fury (with no guarantees on features or reliability) may be installed by running,

curl -Ls get.fury.build | sh

in a shell, or alternatively,

curl -Ls get.fury.build > install
./install system install

if you would prefer to inspect the script before running it.

For more details, see the full installation instructions.

Getting Started

To set up a simple Fury project, follow the short tutorial for Scala or, if you prefer, the tutorial for Java.

Website

Full information about Fury is available on the Fury website.

Contributing

Contributors to Fury are welcome and encouraged. New contributors may like to look for issues marked label: good first issue.

We suggest that all contributors read the Contributing Guide to make the process of contributing to Fury easier.

Please do not contact project maintainers privately with questions, as other users cannot then benefit from the answers.

Author

Fury was designed and developed by Jon Pretty, and commercial support and training is available from Propensive OÜ.

License

Fury is copyright © 2018-20 Jon Pretty & Propensive OÜ, and is made available under the Apache 2.0 License.

More Repositories

1

contextual

Statically-checked string interpolation in Scala
Scala
245
star
2

rapture

Rapture
Scala
183
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