{"id":37028891,"url":"https://github.com/evpl/mjfi","last_synced_at":"2026-01-14T03:27:36.728Z","repository":{"id":47752413,"uuid":"317259489","full_name":"evpl/mjfi","owner":"evpl","description":"The Missing Java Functional Interfaces library","archived":false,"fork":false,"pushed_at":"2021-08-14T21:04:09.000Z","size":59,"stargazers_count":8,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-13T04:54:14.642Z","etag":null,"topics":["functional-interfaces","java","java-library","primitives"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/evpl.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-11-30T15:06:03.000Z","updated_at":"2024-08-29T06:23:39.000Z","dependencies_parsed_at":"2022-08-23T20:40:48.996Z","dependency_job_id":null,"html_url":"https://github.com/evpl/mjfi","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/evpl/mjfi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evpl%2Fmjfi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evpl%2Fmjfi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evpl%2Fmjfi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evpl%2Fmjfi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/evpl","download_url":"https://codeload.github.com/evpl/mjfi/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evpl%2Fmjfi/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28408843,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T01:52:23.358Z","status":"online","status_checked_at":"2026-01-14T02:00:06.678Z","response_time":107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["functional-interfaces","java","java-library","primitives"],"created_at":"2026-01-14T03:27:35.481Z","updated_at":"2026-01-14T03:27:36.716Z","avatar_url":"https://github.com/evpl.png","language":"Java","readme":"# MJFI - The Missing Java Functional Interfaces library\n\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n[![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.plugatar/mjfi/badge.svg)](https://maven-badges.herokuapp.com/maven-central/com.plugatar/mjfi)\n[![Javadoc](http://www.javadoc.io/badge/com.plugatar/mjfi.svg)](http://www.javadoc.io/doc/com.plugatar/mjfi)\n\n---\n\nThis library extends `java.util.function` package with 130 functional interfaces for objects, primitive types\nand operations between them.\n\n## Roadmap\n* only bug fixes\n\n## How to use\nThe library has no dependencies. All you need is Java 8+ and this library.\n\nMaven:\n```xml\n\u003cdependency\u003e\n  \u003cgroupId\u003ecom.plugatar\u003c/groupId\u003e\n  \u003cartifactId\u003emjfi\u003c/artifactId\u003e\n  \u003cversion\u003e1.1.1\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\nGradle:\n```groovy\ndependencies {\n    compile 'com.plugatar:mjfi:1.1.1'\n}\n```\n\n## List of interfaces\nInclude `java.util.function` package\n\n| Input            | Output  | Functional interface                          |\n| ---------------- | ------- | --------------------------------------------- |\n| void             | T       | `java.util.function.Supplier`                 |\n| T                | T       | `java.util.function.UnaryOperator`            |\n| T                | R       | `java.util.function.Function`                 |\n| T                | byte    | `com.plugatar.mjfi.ToByteFunction`            |\n| T                | short   | `com.plugatar.mjfi.ToShortFunction`           |\n| T                | int     | `java.util.function.ToIntFunction`            |\n| T                | long    | `java.util.function.ToLongFunction`           |\n| T                | float   | `com.plugatar.mjfi.ToFloatFunction`           |\n| T                | double  | `java.util.function.ToDoubleFunction`         |\n| T                | char    | `com.plugatar.mjfi.ToCharFunction`            |\n| T                | boolean | `java.util.function.Predicate`                |\n| T                | void    | `java.util.function.Consumer`                 |\n| T, T             | T       | `java.util.function.BinaryOperator`           |\n| T, U             | R       | `java.util.function.BiFunction`               |\n| T, U             | byte    | `com.plugatar.mjfi.ToByteBiFunction`          |\n| T, U             | short   | `com.plugatar.mjfi.ToShortBiFunction`         |\n| T, U             | int     | `java.util.function.ToIntBiFunction`          |\n| T, U             | long    | `java.util.function.ToLongBiFunction`         |\n| T, U             | float   | `com.plugatar.mjfi.ToFloatBiFunction`         |\n| T, U             | double  | `java.util.function.ToDoubleBiFunction`       |\n| T, U             | char    | `com.plugatar.mjfi.ToCharBiFunction`          |\n| T, U             | boolean | `java.util.function.BiPredicate`              |\n| T, U             | void    | `java.util.function.BiConsumer`               |\n| T, byte          | R       | `com.plugatar.mjfi.ObjByteFunction`           |\n| T, byte          | byte    | `com.plugatar.mjfi.ObjByteToByteFunction`     |\n| T, byte          | boolean | `com.plugatar.mjfi.ObjBytePredicate`          |\n| T, byte          | void    | `com.plugatar.mjfi.ObjByteConsumer`           |\n| T, short         | R       | `com.plugatar.mjfi.ObjShortFunction`          |\n| T, short         | short   | `com.plugatar.mjfi.ObjShortToShortFunction`   |\n| T, short         | boolean | `com.plugatar.mjfi.ObjShortPredicate`         |\n| T, short         | void    | `com.plugatar.mjfi.ObjShortConsumer`          |\n| T, int           | R       | `com.plugatar.mjfi.ObjIntFunction`            |\n| T, int           | int     | `com.plugatar.mjfi.ObjIntToIntFunction`       |\n| T, int           | boolean | `com.plugatar.mjfi.ObjIntPredicate`           |\n| T, int           | void    | `java.util.function.ObjIntConsumer`           |\n| T, long          | R       | `com.plugatar.mjfi.ObjLongFunction`           |\n| T, long          | long    | `com.plugatar.mjfi.ObjLongToLongFunction`     |\n| T, long          | boolean | `com.plugatar.mjfi.ObjLongPredicate`          |\n| T, long          | void    | `java.util.function.ObjLongConsumer`          |\n| T, float         | R       | `com.plugatar.mjfi.ObjFloatFunction`          |\n| T, float         | float   | `com.plugatar.mjfi.ObjFloatToFloatFunction`   |\n| T, float         | boolean | `com.plugatar.mjfi.ObjFloatPredicate`         |\n| T, float         | void    | `com.plugatar.mjfi.ObjFloatConsumer`          |\n| T, double        | R       | `com.plugatar.mjfi.ObjDoubleFunction`         |\n| T, double        | double  | `com.plugatar.mjfi.ObjDoubleToDoubleFunction` |\n| T, double        | boolean | `com.plugatar.mjfi.ObjDoublePredicate`        |\n| T, double        | void    | `java.util.function.ObjDoubleConsumer`        |\n| T, char          | R       | `com.plugatar.mjfi.ObjCharFunction`           |\n| T, char          | char    | `com.plugatar.mjfi.ObjCharToCharFunction`     |\n| T, char          | boolean | `com.plugatar.mjfi.ObjCharPredicate`          |\n| T, char          | void    | `com.plugatar.mjfi.ObjCharConsumer`           |\n| T, boolean       | R       | `com.plugatar.mjfi.ObjBooleanFunction`        |\n| T, boolean       | boolean | `com.plugatar.mjfi.ObjBooleanPredicate`       |\n| T, boolean       | void    | `com.plugatar.mjfi.ObjBooleanConsumer`        |\n| void             | byte    | `com.plugatar.mjfi.ByteSupplier`              |\n| byte             | R       | `com.plugatar.mjfi.ByteFunction`              |\n| byte             | byte    | `com.plugatar.mjfi.ByteUnaryOperator`         |\n| byte             | short   | `com.plugatar.mjfi.ByteToShortFunction`       |\n| byte             | int     | `com.plugatar.mjfi.ByteToIntFunction`         |\n| byte             | long    | `com.plugatar.mjfi.ByteToLongFunction`        |\n| byte             | float   | `com.plugatar.mjfi.ByteToFloatFunction`       |\n| byte             | double  | `com.plugatar.mjfi.ByteToDoubleFunction`      |\n| byte             | char    | `com.plugatar.mjfi.ByteToCharFunction`        |\n| byte             | boolean | `com.plugatar.mjfi.BytePredicate`             |\n| byte             | void    | `com.plugatar.mjfi.ByteConsumer`              |\n| byte, byte       | byte    | `com.plugatar.mjfi.ByteBinaryOperator`        |\n| byte, byte       | boolean | `com.plugatar.mjfi.ByteBiPredicate`           |\n| byte, byte       | R       | `com.plugatar.mjfi.ByteBiFunction`            |\n| byte, byte       | void    | `com.plugatar.mjfi.ByteBiConsumer`            |\n| void             | short   | `com.plugatar.mjfi.ShortSupplier`             |\n| short            | R       | `com.plugatar.mjfi.ShortFunction`             |\n| short            | byte    | `com.plugatar.mjfi.ShortToByteFunction`       |\n| short            | short   | `com.plugatar.mjfi.ShortUnaryOperator`        |\n| short            | int     | `com.plugatar.mjfi.ShortToIntFunction`        |\n| short            | long    | `com.plugatar.mjfi.ShortToLongFunction`       |\n| short            | float   | `com.plugatar.mjfi.ShortToFloatFunction`      |\n| short            | double  | `com.plugatar.mjfi.ShortToDoubleFunction`     |\n| short            | char    | `com.plugatar.mjfi.ShortToCharFunction`       |\n| short            | boolean | `com.plugatar.mjfi.ShortPredicate`            |\n| short            | void    | `com.plugatar.mjfi.ShortConsumer`             |\n| short, short     | short   | `com.plugatar.mjfi.ShortBinaryOperator`       |\n| short, short     | boolean | `com.plugatar.mjfi.ShortBiPredicate`          |\n| short, short     | R       | `com.plugatar.mjfi.ShortBiFunction`           |\n| short, short     | void    | `com.plugatar.mjfi.ShortBiConsumer`           |\n| void             | int     | `java.util.function.IntSupplier`              |\n| int              | R       | `java.util.function.IntFunction`              |\n| int              | byte    | `com.plugatar.mjfi.IntToByteFunction`         |\n| int              | short   | `com.plugatar.mjfi.IntToShortFunction`        |\n| int              | int     | `java.util.function.IntUnaryOperator`         |\n| int              | long    | `java.util.function.IntToLongFunction`        |\n| int              | float   | `com.plugatar.mjfi.IntToFloatFunction`        |\n| int              | double  | `java.util.function.IntToDoubleFunction`      |\n| int              | char    | `com.plugatar.mjfi.IntToCharFunction`         |\n| int              | boolean | `java.util.function.IntPredicate`             |\n| int              | void    | `java.util.function.IntConsumer`              |\n| int, int         | int     | `java.util.function.IntBinaryOperator`        |\n| int, int         | boolean | `com.plugatar.mjfi.IntBiPredicate`            |\n| int, int         | R       | `com.plugatar.mjfi.IntBiFunction`             |\n| int, int         | void    | `com.plugatar.mjfi.IntBiConsumer`             |\n| void             | long    | `java.util.function.LongSupplier`             |\n| long             | R       | `java.util.function.LongFunction`             |\n| long             | byte    | `com.plugatar.mjfi.LongToByteFunction`        |\n| long             | short   | `com.plugatar.mjfi.LongToShortFunction`       |\n| long             | int     | `java.util.function.LongToIntFunction`        |\n| long             | long    | `java.util.function.LongUnaryOperator`        |\n| long             | float   | `com.plugatar.mjfi.LongToFloatFunction`       |\n| long             | double  | `java.util.function.LongToDoubleFunction`     |\n| long             | char    | `com.plugatar.mjfi.LongToCharFunction`        |\n| long             | boolean | `java.util.function.LongPredicate`            |\n| long             | void    | `java.util.function.LongConsumer`             |\n| long, long       | long    | `java.util.function.LongBinaryOperator`       |\n| long, long       | boolean | `com.plugatar.mjfi.LongBiPredicate`           |\n| long, long       | R       | `com.plugatar.mjfi.LongBiFunction`            |\n| long, long       | void    | `com.plugatar.mjfi.LongBiConsumer`            |\n| void             | float   | `com.plugatar.mjfi.FloatSupplier`             |\n| float            | R       | `com.plugatar.mjfi.FloatFunction`             |\n| float            | byte    | `com.plugatar.mjfi.FloatToByteFunction`       |\n| float            | short   | `com.plugatar.mjfi.FloatToShortFunction`      |\n| float            | int     | `com.plugatar.mjfi.FloatToIntFunction`        |\n| float            | long    | `com.plugatar.mjfi.FloatToLongFunction`       |\n| float            | float   | `com.plugatar.mjfi.FloatUnaryOperator`        |\n| float            | double  | `com.plugatar.mjfi.FloatToDoubleFunction`     |\n| float            | char    | `com.plugatar.mjfi.FloatToCharFunction`       |\n| float            | boolean | `com.plugatar.mjfi.FloatPredicate`            |\n| float            | void    | `com.plugatar.mjfi.FloatConsumer`             |\n| float, float     | float   | `com.plugatar.mjfi.FloatBinaryOperator`       |\n| float, float     | boolean | `com.plugatar.mjfi.FloatBiPredicate`          |\n| float, float     | R       | `com.plugatar.mjfi.FloatBiFunction`           |\n| float, float     | void    | `com.plugatar.mjfi.FloatBiConsumer`           |\n| void             | double  | `java.util.function.DoubleSupplier`           |\n| double           | R       | `java.util.function.DoubleFunction`           |\n| double           | byte    | `com.plugatar.mjfi.DoubleToByteFunction`      |\n| double           | short   | `com.plugatar.mjfi.DoubleToShortFunction`     |\n| double           | int     | `java.util.function.DoubleToIntFunction`      |\n| double           | long    | `java.util.function.DoubleToLongFunction`     |\n| double           | float   | `com.plugatar.mjfi.DoubleToFloatFunction`     |\n| double           | double  | `java.util.function.DoubleUnaryOperator`      |\n| double           | char    | `com.plugatar.mjfi.DoubleToCharFunction`      |\n| double           | boolean | `java.util.function.DoublePredicate`          |\n| double           | void    | `java.util.function.DoubleConsumer`           |\n| double, double   | double  | `java.util.function.DoubleBinaryOperator`     |\n| double, double   | boolean | `com.plugatar.mjfi.DoubleBiPredicate`         |\n| double, double   | R       | `com.plugatar.mjfi.DoubleBiFunction`          |\n| double, double   | void    | `com.plugatar.mjfi.DoubleBiConsumer`          |\n| void             | char    | `com.plugatar.mjfi.CharSupplier`              |\n| char             | R       | `com.plugatar.mjfi.CharFunction`              |\n| char             | byte    | `com.plugatar.mjfi.CharToByteFunction`        |\n| char             | short   | `com.plugatar.mjfi.CharToShortFunction`       |\n| char             | int     | `com.plugatar.mjfi.CharToIntFunction`         |\n| char             | long    | `com.plugatar.mjfi.CharToLongFunction`        |\n| char             | float   | `com.plugatar.mjfi.CharToFloatFunction`       |\n| char             | double  | `com.plugatar.mjfi.CharToDoubleFunction`      |\n| char             | char    | `com.plugatar.mjfi.CharUnaryOperator`         |\n| char             | boolean | `com.plugatar.mjfi.CharPredicate`             |\n| char             | void    | `com.plugatar.mjfi.CharConsumer`              |\n| char, char       | char    | `com.plugatar.mjfi.CharBinaryOperator`        |\n| char, char       | boolean | `com.plugatar.mjfi.CharBiPredicate`           |\n| char, char       | R       | `com.plugatar.mjfi.CharBiFunction`            |\n| char, char       | void    | `com.plugatar.mjfi.CharBiConsumer`            |\n| void             | boolean | `java.util.function.BooleanSupplier`          |\n| boolean          | R       | `com.plugatar.mjfi.BooleanFunction`           |\n| boolean          | byte    | `com.plugatar.mjfi.BooleanToByteFunction`     |\n| boolean          | short   | `com.plugatar.mjfi.BooleanToShortFunction`    |\n| boolean          | int     | `com.plugatar.mjfi.BooleanToIntFunction`      |\n| boolean          | long    | `com.plugatar.mjfi.BooleanToLongFunction`     |\n| boolean          | float   | `com.plugatar.mjfi.BooleanToFloatFunction`    |\n| boolean          | double  | `com.plugatar.mjfi.BooleanToDoubleFunction`   |\n| boolean          | char    | `com.plugatar.mjfi.BooleanToCharFunction`     |\n| boolean          | boolean | `com.plugatar.mjfi.BooleanUnaryOperator`      |\n| boolean          | void    | `com.plugatar.mjfi.BooleanConsumer`           |\n| boolean, boolean | boolean | `com.plugatar.mjfi.BooleanBinaryOperator`     |\n| boolean, boolean | R       | `com.plugatar.mjfi.BooleanBiFunction`         |\n| boolean, boolean | void    | `com.plugatar.mjfi.BooleanBiConsumer`         |\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fevpl%2Fmjfi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fevpl%2Fmjfi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fevpl%2Fmjfi/lists"}