Mirror of GNU Guix
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

118 lines
5.1 KiB

  1. ;;; GNU Guix --- Functional package management for GNU
  2. ;;; Copyright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net>
  3. ;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice <me@tobias.gr>
  4. ;;;
  5. ;;; This file is part of GNU Guix.
  6. ;;;
  7. ;;; GNU Guix is free software; you can redistribute it and/or modify it
  8. ;;; under the terms of the GNU General Public License as published by
  9. ;;; the Free Software Foundation; either version 3 of the License, or (at
  10. ;;; your option) any later version.
  11. ;;;
  12. ;;; GNU Guix is distributed in the hope that it will be useful, but
  13. ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
  14. ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  15. ;;; GNU General Public License for more details.
  16. ;;;
  17. ;;; You should have received a copy of the GNU General Public License
  18. ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
  19. (define-module (gnu packages datastructures)
  20. #:use-module (gnu packages)
  21. #:use-module (gnu packages perl)
  22. #:use-module ((guix licenses) #:prefix license:)
  23. #:use-module (guix packages)
  24. #:use-module (guix download)
  25. #:use-module (guix build-system gnu))
  26. (define-public gdsl
  27. (package
  28. (name "gdsl")
  29. (version "1.8")
  30. (source (origin
  31. (method url-fetch)
  32. (uri (string-append "http://download.gna.org/gdsl/"
  33. "gdsl-" version ".tar.gz"))
  34. (sha256
  35. (base32
  36. "1v64jvlnj8jfpphphgjgb36p0kv50kwfyqncf0y12f16v8ydyiaw"))))
  37. (build-system gnu-build-system)
  38. (home-page "http://home.gna.org/gdsl/")
  39. (synopsis "Generic data structures library")
  40. (description "The Generic Data Structures Library (GDSL) is a collection
  41. of routines for generic data structures manipulation. It is a re-entrant
  42. library fully written from scratch in pure ANSI C. It is designed to offer
  43. for C programmers common data structures with powerful algorithms, and hidden
  44. implementation. Available structures are lists, queues, stacks, hash tables,
  45. binary trees, binary search trees, red-black trees, 2D arrays, permutations
  46. and heaps.")
  47. (license license:gpl2+)))
  48. (define-public sparsehash
  49. (package
  50. (name "sparsehash")
  51. (version "2.0.3")
  52. (source (origin
  53. (method url-fetch)
  54. (uri (string-append "https://github.com/sparsehash/sparsehash/"
  55. "archive/sparsehash-" version ".tar.gz"))
  56. (sha256
  57. (base32
  58. "133szz0ldwch0kd91l0sa57qsnl020njn622szd9cxrjqyjqds85"))))
  59. (build-system gnu-build-system)
  60. (synopsis "Memory-efficient hashtable implementations")
  61. (description
  62. "This library contains several hash-map implementations, similar in API
  63. to SGI's @code{hash_map} class, but with different performance
  64. characteristics. @code{sparse_hash_map} uses very little space overhead, 1-2
  65. bits per entry. @code{dense_hash_map} is very fast, particulary on lookup.
  66. @code{sparse_hash_set} and @code{dense_hash_set} are the set versions of these
  67. routines. All these implementation use a hashtable with internal quadratic
  68. probing. This method is space-efficient -- there is no pointer overhead --
  69. and time-efficient for good hash functions.")
  70. (home-page "https://github.com/sparsehash/sparsehash")
  71. (license license:bsd-3)))
  72. (define-public ssdeep
  73. (package
  74. (name "ssdeep")
  75. (version "2.13")
  76. (source (origin
  77. (method url-fetch)
  78. (uri (string-append "mirror://sourceforge/ssdeep/"
  79. name "-" version "/"
  80. name "-" version ".tar.gz"))
  81. (sha256
  82. (base32
  83. "1igqy0j7jrklb8fdlrm6ald4cyl1fda5ipfl8crzyl6bax2ajk3f"))))
  84. (build-system gnu-build-system)
  85. (home-page "http://ssdeep.sourceforge.net")
  86. (synopsis "Context-triggered piecewise hashing algorithm")
  87. (description "ssdeep computes and matches context triggered piecewise
  88. hashes (CTPH), also called fuzzy checksums. It can identify similar files
  89. that have sequences of identical bytes in the same order, even though bytes
  90. in between these sequences may be different in both content and length.")
  91. (license license:gpl2+)))
  92. (define-public liburcu
  93. (package
  94. (name "liburcu")
  95. (version "0.9.3")
  96. (source (origin
  97. (method url-fetch)
  98. (uri (string-append "https://www.lttng.org/files/urcu/"
  99. "userspace-rcu-" version ".tar.bz2"))
  100. (sha256
  101. (base32
  102. "01j0xp3f0w147yfyzybkjvb7i67i7prsvnkssgvgwry9lvk35khv"))))
  103. (build-system gnu-build-system)
  104. (native-inputs
  105. `(("perl" ,perl))) ; for tests
  106. (home-page "http://liburcu.org/")
  107. (synopsis "User-space RCU data synchronisation library")
  108. (description "liburcu is a user-space @dfn{Read-Copy-Update} (RCU) data
  109. synchronisation library. It provides read-side access that scales linearly
  110. with the number of cores. liburcu-cds provides efficient data structures
  111. based on RCU and lock-free algorithms. These structures include hash tables,
  112. queues, stacks, and doubly-linked lists.")
  113. (license license:lgpl2.1+)))