[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#65118] [PATCH 9/9] gnu: Add nsq.
From: |
Sharlatan Hellseher |
Subject: |
[bug#65118] [PATCH 9/9] gnu: Add nsq. |
Date: |
Sun, 6 Aug 2023 20:55:36 +0100 |
* gnu/packages/high-availability.scm (nsq): New variable.
---
gnu/packages/high-availability.scm | 87 ++++++++++++++++++++++++++++++
1 file changed, 87 insertions(+)
diff --git a/gnu/packages/high-availability.scm
b/gnu/packages/high-availability.scm
index 11ff8014cf..9763a04b21 100644
--- a/gnu/packages/high-availability.scm
+++ b/gnu/packages/high-availability.scm
@@ -34,6 +34,7 @@ (define-module (gnu packages high-availability)
#:use-module (gnu packages gcc)
#:use-module (gnu packages gettext)
#:use-module (gnu packages glib)
+ #:use-module (gnu packages golang)
#:use-module (gnu packages hardware)
#:use-module (gnu packages linux)
#:use-module (gnu packages lua)
@@ -43,12 +44,14 @@ (define-module (gnu packages high-availability)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages rsync)
+ #:use-module (gnu packages syncthing)
#:use-module (gnu packages tls)
#:use-module (gnu packages valgrind)
#:use-module (gnu packages version-control)
#:use-module (gnu packages xml)
#:use-module (gnu packages)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system go)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
@@ -190,6 +193,90 @@ (define-public kronosnet
in general better performances compared to the old network protocol.")
(license (list license:gpl2+ license:lgpl2.1+))))
+(define-public nsq
+ (package
+ (name "nsq")
+ (version "1.2.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/nsqio/nsq")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0ajqjwfn06zsmz21z9mkl4cblarypaf20228pqcd1293zl6y3ry8"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "github.com/nsqio/nsq"
+ #:install-source? #f
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'build
+ (lambda* (#:key import-path #:allow-other-keys)
+ (with-directory-excursion (string-append "src/" import-path)
+ (invoke "make"))))
+ (replace 'check
+ (lambda* (#:key tests? import-path #:allow-other-keys)
+ (when tests?
+ (setenv "HOME" "/tmp")
+ (with-directory-excursion (string-append "src/" import-path)
+ (invoke #$@(if (string-prefix? "x86_64-linux"
+ (or (%current-system)
+ (%current-target-system)))
+ (list "go" "test" "-v" "-race" "./...")
+ (list "go" "test" "-v" "./...")))))))
+ (replace 'install
+ (lambda* (#:key import-path #:allow-other-keys)
+ (with-directory-excursion (string-append "src/" import-path)
+ (invoke "make" (string-append "PREFIX=" #$output)
+ "install")))))))
+ (native-inputs
+ (list go-github-com-bitly-go-hostpool
+ go-github-com-bitly-timer-metrics
+ go-github-com-blang-semver
+ go-github-com-bmizerany-perks-quantile
+ go-github-com-burntsushi-toml
+ go-github-com-davecgh-go-spew
+ go-github-com-golang-snappy ; Move to (gnu packages golang)
+ go-github-com-mreiferson-go-svc
+ go-github-com-julienschmidt-httprouter
+ go-github-com-mreiferson-go-options
+ go-github-com-mreiferson-go-svc
+ go-github-com-nsqio-go-diskqueue
+ go-github-com-nsqio-go-nsq
+ python-wrapper))
+ (home-page "https://nsq.io")
+ (synopsis "Realtime distributed messaging platform")
+ (description
+ "NSQ is a realtime distributed messaging platform designed to operate at
+scale, handling billions of messages per day.
+
+Key features:
+@itemize
+@item support distributed topologies with no SPOF
+@item horizontally scalable (no brokers, seamlessly add more nodes to the
+cluster)
+@item low-latency push based message delivery (performance)
+@item combination load-balanced and multicast style message routing
+@item excel at both streaming (high-throughput) and job oriented
+(low-throughput) workloads
+@item primarily in-memory (beyond a high-water mark messages are transparently
+kept on disk)
+@item runtime discovery service for consumers to find producers (nsqlookupd)
+@item transport layer security (TLS)
+@item data format agnostic
+@item few dependencies (easy to deploy) and a sane, bounded, default
+configuration
+@item simple TCP protocol supporting client libraries in any language
+@item HTTP interface for stats, admin actions, and producers (no client
+library needed to publish)
+@item integrates with statsd for realtime instrumentation
+@item robust cluster administration interface (nsqadmin)
+@end itemize")
+ (license license:expat)))
+
(define-public corosync
(package
(name "corosync")
--
2.40.1
- [bug#65118] [PATCH 0/9]: gnu: Add NSQ., (continued)
- [bug#65118] [PATCH 4/9] gnu: Add go-github-com-mreiferson-go-svc., Sharlatan Hellseher, 2023/08/06
- [bug#65118] [PATCH 2/9] gnu: Add go-github-com-bitly-timer-metrics., Sharlatan Hellseher, 2023/08/06
- [bug#65118] [PATCH 7/9] gnu: Add go-github-com-nsqio-go-diskqueue., Sharlatan Hellseher, 2023/08/06
- [bug#65118] [PATCH 5/9] gnu: Add go-github-com-julienschmidt-httprouter., Sharlatan Hellseher, 2023/08/06
- [bug#65118] [PATCH 1/9] gnu: Add go-github-com-bitly-go-hostpool., Sharlatan Hellseher, 2023/08/06
- [bug#65118] [PATCH 9/9] gnu: Add nsq.,
Sharlatan Hellseher <=
- [bug#65118] [PATCH 6/9] gnu: Add go-github-com-mreiferson-go-options., Sharlatan Hellseher, 2023/08/06
- [bug#65118] [PATCH 3/9] gnu: Add go-github-com-bmizerany-perks-quantile., Sharlatan Hellseher, 2023/08/06
- [bug#65118], Sharlatan Hellseher, 2023/08/26