diff options
Diffstat (limited to 'gnu/packages/erlang-xyz.scm')
-rw-r--r-- | gnu/packages/erlang-xyz.scm | 397 |
1 files changed, 397 insertions, 0 deletions
diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm index aa7c69baba..2dfa609a6f 100644 --- a/gnu/packages/erlang-xyz.scm +++ b/gnu/packages/erlang-xyz.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2024, 2025 Igor Goryachev <igor@goryachev.org> +;;; Copyright © 2025 Giacomo Leidi <goodoldpaul@autistici.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -32,6 +33,150 @@ #:use-module (guix packages) #:use-module (guix utils)) +(define-public erlang-binpp + (package + (name "erlang-binpp") + (version "1.1.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jtendo/binpp") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1dv7mg0j6q4vs4bcp14df3q1y3if58dskca98wmnsrbwkibkn6vp")) + (patches (search-patches "erlang-binpp-disable-failing-tests.patch")))) + (build-system rebar-build-system) + (synopsis "Erlang Binary Pretty Printer") + (description "@code{Binpp} will use @code{io:format} to output the formatted +binary by default. However there are options making @code{pprint} functions +return formatted data instead of performing direct IO write.") + (home-page "https://github.com/jtendo/binpp") + (license license:wtfpl2))) + +(define-public erlang-coveralls + (package + (name "erlang-coveralls") + (version "2.2.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri "coveralls" version)) + (sha256 + (base32 "18q4c8bcrpa48mvwpwdh51ma84zfxhcmd70qh2956jy6m05dnm6d")))) + (build-system rebar-build-system) + (propagated-inputs (list erlang-jsx)) + (synopsis "Coveralls for Erlang") + (description "This package provides @code{erlang-coveralls}, an Erlang +module to convert and send cover data to Coveralls.") + (home-page "https://hex.pm/packages/coveralls") + (license license:bsd-2))) + +(define-public erlang-cowboy + (package + (name "erlang-cowboy") + (version "2.13.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri "cowboy" version)) + (sha256 + (base32 "052nvhnskkgikgzqcz84bhh9bsmz3nqwg4hr9ijms0lm16kx6977")))) + (build-system rebar-build-system) + (propagated-inputs (list erlang-cowlib erlang-ranch)) + (synopsis "Small, fast, modern HTTP server") + (description "Cowboy aims to provide a complete HTTP stack in a small code +base. It is optimized for low latency and low memory usage, in part because it +uses binary strings. + +Cowboy provides routing capabilities, selectively dispatching requests to +handlers written in Erlang. Because it uses Ranch for managing connections, +Cowboy can easily be embedded in any other application.") + (home-page "https://hex.pm/packages/cowboy") + (license license:isc))) + +(define-public erlang-cowboy-telemetry + (package + (name "erlang-cowboy-telemetry") + (version "0.4.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri "cowboy_telemetry" version)) + (sha256 + (base32 "1pn90is3k9dq64wbijvzkqb6ldfqvwiqi7ymc8dx6ra5xv0vm63x")))) + (build-system rebar-build-system) + (propagated-inputs (list erlang-cowboy erlang-telemetry)) + (synopsis "Telemetry instrumentation for Cowboy") + (description "This package provides @code{erlang-cowboy-telemetry}, a +library implementing Telemetry instrumentation for Cowboy.") + (home-page "https://github.com/beam-telemetry/cowboy_telemetry") + (license license:asl2.0))) + +(define-public erlang-cowlib + (package + (name "erlang-cowlib") + (version "2.15.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri "cowlib" version)) + (sha256 + (base32 "0ckmhmz62nijmp1h62w252wzv7syja0l4amlzk4ffksblrwwh02g")))) + (build-system rebar-build-system) + (arguments + ;; FIXME: tests fail with + ;; src/cow_base64url.erl:{27,14}: + ;; can't find include lib "proper/include/proper.hrl" + (list #:tests? #f)) + (native-inputs + (list erlang-proper)) + (synopsis "Manipulate Web protocols") + (description "This package provides @code{erlang-cowlib}, a support library +for manipulating Web protocols.") + (home-page "https://hex.pm/packages/cowlib") + (license license:isc))) + +(define-public erlang-erlang-color + (package + (name "erlang-erlang-color") + (version "2.0.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri "erlang_color" version)) + (sha256 + (base32 "04vczpwp105nmx2s6c2lp3rh4dy2zy4l1md73w2ycv98v7gw6sbs")))) + (build-system rebar-build-system) + (arguments + (list + #:tests? #f)) ;some required rebar plugins + (synopsis "ANSI colors for your Erlang") + (description "This library implements ANSI colors for your Erlang.") + (home-page "https://hex.pm/packages/erlang_color") + (license license:expat))) + +(define-public erlang-exometer-core + (package + (name "erlang-exometer-core") + (version "2.0.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri "exometer_core" version)) + (sha256 + (base32 "191kjqqbvz0jjijfhkbs73lnsmlrr2yinw30pkby0fx363l378xf")))) + (build-system rebar-build-system) + (native-inputs + (list erlang-meck)) + (propagated-inputs (list erlang-hut erlang-parse-trans erlang-setup)) + (synopsis "Code instrumentation and metrics collection") + (description "This package provides @code{erlang-exometer-core}, a library +for code instrumentation and metrics collection.") + (home-page "https://hexdocs.pm/exometer_core/") + (license license:mpl2.0))) + (define-public erlang-luerl (package (name "erlang-luerl") @@ -105,6 +250,144 @@ Erlang and Elixir.") (home-page "https://hex.pm/packages/jiffy") (license license:expat))) +(define-public erlang-hackney + (package + (name "erlang-hackney") + (version "1.25.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri "hackney" version)) + (sha256 + (base32 "1m5issgyf7kiardfkknbh6g2lvsdlyggby0z45kj9x6ibzbvy2bj")))) + (build-system rebar-build-system) + (native-inputs + (list erlang-cowboy erlang-jsone rebar3-ex-doc)) + (propagated-inputs + (list erlang-certifi + erlang-idna + erlang-metrics-1.0 + erlang-mimerl + erlang-parse-trans + erlang-ssl-verify-fun + erlang-unicode-util-compat)) + (synopsis "Simple HTTP client") + (description "This package provides @code{erlang-hackney}, a simple HTTP +client.") + (home-page "https://hexdocs.pm/hackney/") + (license license:asl2.0))) + +(define-public erlang-hut + (package + (name "erlang-hut") + (version "1.4.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri "hut" version)) + (sha256 + (base32 "00xvdqyycljks3dh79jz4rjmdwcp7ky6158dywva765fkd5p1y3s")))) + (build-system rebar-build-system) + (synopsis + "Helper logging library for Erlang") + (description + "This package provides an helper library for making Erlang libraries +logging framework agnostic.") + (home-page "https://hex.pm/packages/hut") + (license license:expat))) + +(define-public erlang-meck + (package + (name "erlang-meck") + (version "1.0.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri "meck" version)) + (sha256 + (base32 "10iq8csyr7x1w371c54255rqxvjznxgk7c4zxc5kar17wp7rn2k8")))) + (build-system rebar-build-system) + (arguments + (list + ;; FIXME: Tests depend on elixir-unite which is not + ;; yet packaged. + #:tests? #f)) + (synopsis "Mocking framework for Erlang") + (description "This package provides @code{meck}, a mocking framework for +Erlang.") + (home-page "https://hexdocs.pm/meck/") + (license license:asl2.0))) + +(define-public erlang-metrics + (package + (name "erlang-metrics") + (version "2.5.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri "metrics" version)) + (sha256 + (base32 "0jviygsq88x6hymrhrg1zwg1wp71ccmpk6my2xyykgf3r0w1j1mf")))) + (build-system rebar-build-system) + (native-inputs + (list erlang-exometer-core)) + (synopsis "Generic interface to metrics systems in Erlang") + (description + "This package provides a generic interface to different metrics systems in +Erlang.") + (home-page "https://hex.pm/packages/metrics") + (license license:bsd-2))) + +(define-public erlang-metrics-1.0 + (package + (inherit erlang-metrics) + (version "1.0.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri "metrics" version)) + (sha256 + (base32 "05lz15piphyhvvm3d1ldjyw0zsrvz50d2m5f2q3s8x2gvkfrmc39")))))) + +(define-public erlang-mimerl + (package + (name "erlang-mimerl") + (version "1.4.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri "mimerl" version)) + (sha256 + (base32 "0i5i4shhlrc8kphz74i72n17vdd7a0fqk8x3ri78hrccyvwibbqk")))) + (build-system rebar-build-system) + (synopsis "Library to handle mimetypes") + (description "This package provides a library to handle mimetypes.") + (home-page "https://hex.pm/packages/mimerl") + (license license:expat))) + +(define-public erlang-mochiweb + (package + (name "erlang-mochiweb") + (version "3.2.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mochi/mochiweb") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0npsgdz2jfg633zv5q5q7y3qzz58wva0y6k9calswybq0mx6243v")) + (patches + (search-patches + "erlang-mochiweb-disable-known-to-fail-tests.patch")))) + (build-system rebar-build-system) + (synopsis "MochiMedia Web Server") + (description "This package provides @code{MochiMedia}, an Erlang Web +Server.") + (home-page "https://github.com/mochi/mochiweb") + (license license:expat))) + (define-public erlang-pkix (package (name "erlang-pkix") @@ -213,6 +496,64 @@ Erlang and Elixir.") (home-page "https://hex.pm/packages/p1_pgsql") (license license:asl2.0))) +(define-public erlang-ranch + (package + (name "erlang-ranch") + (version "2.2.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri "ranch" version)) + (sha256 + (base32 "1rzqykpqfiwagmym523yzzxk5bmxsfl9x9cp8652300cg2hrj2zs")))) + (build-system rebar-build-system) + (synopsis "Socket acceptor pool for TCP protocols.") + (description "Ranch aims to provide everything you need to accept TCP +connections with a small code base and low latency while being easy to use +directly as an application or to embed into your own.") + (home-page "https://hex.pm/packages/ranch") + (license license:isc))) + +(define-public erlang-setup + (package + (name "erlang-setup") + (version "2.2.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri "setup" version)) + (sha256 + (base32 "1d3x8mhsp03ppahny1yj2i910qqvgqixx3knw7283jijgpabpfpp")))) + (build-system rebar-build-system) + (synopsis "Generic setup application for Erlang-based systems") + (description "This package implements a generic setup application for +Erlang-based systems.") + (home-page "https://github.com/uwiger/setup") + (license license:asl2.0))) + +(define-public erlang-shards + (package + (name "erlang-shards") + (version "1.1.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri "shards" version)) + (sha256 + (base32 "1nlfx82x9wpqlhyc5j22xjxdpl1kyhdx71mzbyhwss36mrfh96hn")))) + (build-system rebar-build-system) + (native-inputs + (list erlang-covertool rebar3-ex-doc rebar3-proper)) + (arguments + (list + ;; FIXME: Tests depend on rebar3-hex, which is not packaged yet. + #:tests? #f)) + (synopsis "Partitioned or sharded ETS tables") + (description + "Erlang/Elixir library for partitioned or sharded ETS tables.") + (home-page "https://hexdocs.pm/shards/") + (license license:expat))) + (define-public erlang-sqlite3 (package (name "erlang-sqlite3") @@ -265,6 +606,62 @@ implementation.") (home-page "https://hex.pm/packages/stringprep") (license license:asl2.0))) +(define-public erlang-tdiff + (package + (name "erlang-tdiff") + (version "0.1.2") + (source + (origin + (method url-fetch) + (uri (hexpm-uri "tdiff" version)) + (sha256 + (base32 "0xbq7p9ii2kp49ms1kylj92ih2jiwvqwimb8jy4aalljz5lf3hp0")))) + (build-system rebar-build-system) + (synopsis "Difference library") + (description "This package provides a difference library.") + (home-page "https://hex.pm/packages/tdiff") + (license license:lgpl2.0))) + +(define-public erlang-telemetry + (package + (name "erlang-telemetry") + (version "1.3.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri "telemetry" version)) + (sha256 + (base32 "1rkrbf3z7my9dsz9km7077anp6f0nyapmf5lyij3grnv364zq5bh")))) + (build-system rebar-build-system) + (synopsis "Dynamic dispatching library for metrics and instrumentations") + (description + "@code{Telemetry} is a lightweight library for dynamic dispatching of +events, with a focus on metrics and instrumentation. Any Erlang or Elixir +library can use @code{telemetry} to emit events. Application code and other +libraries can then hook into those events and run custom handlers.") + (home-page "https://hexdocs.pm/telemetry/") + (license license:asl2.0))) + +(define-public erlang-telemetry-poller + (package + (name "erlang-telemetry-poller") + (version "1.3.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri "telemetry_poller" version)) + (sha256 + (base32 "04ajnflsj9xg8sv2012npazsjvj3fjcxp5sqyx84lm18f7nqpwai")))) + (build-system rebar-build-system) + (propagated-inputs (list erlang-telemetry)) + (synopsis + "Periodically collect measurements and dispatch them as Telemetry events") + (description + "This package provides a library to periodically collect measurements and +dispatch them as Telemetry events.") + (home-page "https://hexdocs.pm/telemetry_poller/") + (license license:asl2.0))) + (define-public erlang-cache-tab (package (name "erlang-cache-tab") |