Skip to content
forked from gchq/koryphe

A flexible library for writing functional operations in Java

License

Notifications You must be signed in to change notification settings

mumbler6/koryphe

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Koryphe

ci codecov Maven Central

Koryphe is an extensible functions library for filtering, aggregating and transforming data
based on the Java Function API. It provides:

  • Context adapted functions.
  • Function composition.
  • Functions with multiple inputs/outputs.
  • JSON serialisation.
  • Library of re-usable functions.

Context adapted functions

Koryphe allows any Java 11 Function, BinaryOperator or Predicate to be adapted and applied to the values contained within a complex object such as a Tuple.

Function composition

Functions (or BinaryOperators or Predicates) can be combined and applied together in a single composite function. This is particularly powerful when combined with context adapted functions, allowing composite functions to be built from a library of simple functions and applied to complex objects.

Functions with multiple inputs/outputs

Koryphe can combine inputs and outputs into tuples, providing type-safe interfaces for functions that apply to and/or return more than one value.

JSON serialisation

Functions, including composites, can be JSON serialised, allowing them to be used across distributed applications.

Library of re-usable functions

Koryphe provides a number of useful Functions, BinaryOperators and Predicates for building simple applications.

License

Koryphe is licensed under the Apache 2.0 License and is covered by Crown Copyright.

Contributing

We welcome contributions to the project. Detailed information on our ways of working can be found here. In brief:

About

A flexible library for writing functional operations in Java

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%