Clojure stuff!
2019-03-17SALT🔗
An experimental tool to convert a subset of Clojure into TLA+. Although it is experimental it has been used to produce real, useful TLA+ specifications
Nippy🔗
High-performance serialization library for Clojure
truss🔗
Better assertions for clojure
Uniontypes🔗
Union Types (Algebraic Data Types) for Clojure and ClojureScript, based on clojure.spec.
Provides a case-of macro, which does case matching based on which branch in an or spec a value conforms to.
case-of checks at compile time that all cases are handled, and if not throws an exception.
specmonstah🔗
Generate semantically correct data with core.spec and some "table definition" stuff (foreign keys/constraints)
pinpointer🔗
clojure.spec error reporter
orchestra🔗
better instrumentation for function specs (wait for spec2 before trying to play with this...)
spec-tools🔗
lots of core.spec extra stuff, data coercion, swagger spec generation etc. (wait for spec2 before trying to play with this...)
asynctor🔗
Minimal core.async inspector library for Clojure(Script)
methodical🔗
CL multimethods in Clojure. apparently more performant than default clojure ones, why??
tufte🔗
clojure profiling
JIT Watch🔗
Nice insight in the behaviour of the Hotspot JIT!
Need to try this out to see how it works with clojure.
Netflix concurrency limits🔗
This is actually a Java library. Use classic TCP congestion libraries to manage a service (accept/reject requests).
Resilience4clj🔗
circuit breakers etc. for clojure (from resilience4j lib)
Meander🔗
Like Specter but with logic operators (more declarative).
Declarative data transformation.
Pathom🔗
Parses EQL queries.
Primitive maths🔗
Avoid hidden reflection when doing basic math in Clojure.
Xforms - extra transducers🔗
Soy-clj - clojure wrapper for google close template library🔗
Consider forking to do an updated version
Hara - set of libraries to explore more in detail🔗
bifurcan - high performance data structure🔗
Description from the website:
This library provides high-quality Java implementations of mutable and immutable data structures, each sharing a common API and these design principles:
- efficient random access
- efficient splitting and merging of collections
- customizable equality semantics
- contiguous memory used wherever possible
- performance equivalent to, or better than, existing alternatives
Rather than using the existing collection interfaces in java.util such as List or Map, it provides its own interfaces (IList, IMap, ISet) that provide functional semantics - each update to a collection returns a reference to a new collection. Each interface provides a method (toList, toMap, toSet) for coercing the collection to a read-only version of the standard Java interfaces.
IgushArray java port🔗
An implementation of the IgushArray in Java, with O(1) access and O(N^1/2) insertion and removal
(ArrayList interface, constant get time (slower constant than real array, probably amortized) and square(n) time insertion/removal, much much much faster than with a real array).