* gnu/packages/rust.scm (rust-deque): New variable.
---
gnu/packages/rust.scm | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index f68e1ceb0..28a8f72c6 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -1099,3 +1099,31 @@ which is providing character encoding support for Rust.")
based on WHATWG Encoding Standard, and also provides an advanced
interface for error detection and recovery.")
(license license:expat)))
+
+(define-public rust-deque
+ (package
+ (name "rust-deque")
+ (version "0.3.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "deque" version))
+ (file-name
+ (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1gz75w8l3l0rjxxa9j1ykxra2kb5828j297av1g7h4g78286a50n"))))
+ (build-system cargo-build-system)
+ (inputs `(("rust-rand" ,rust-rand "src")))
+ (home-page "https://github.com/kinghajj/deque")
+ (synopsis "Mostly lock-free concurrent work-stealing deque")
+ (description
+ "@code{deque} contains an implementation of the Chase-Lev work
+stealing deque described in \"Dynamic Circular Work-Stealing Deque\".
+The implementation is heavily based on the implementation using C11
+atomics in \"Correct and Efficient Work Stealing for Weak Memory Models\".
+
+The only potentially lock-synchronized portion of this deque is the
+occasional call to the memory allocator when growing the deque.
+Otherwise all operations are lock-free.")
+ (license (list license:expat license:asl2.0))))
--
2.11.0