Clojure library to describe the structure of data and functions
Clojure
242
228 commits
updated Jan 2, 2026
spec is a Clojure library to describe the structure of data and functions. Specs can be used to validate data, conform (destructure) data, explain invalid data, generate examples that conform to the specs, and automatically use generative testing to test functions.
Clojure 1.9 depends on this library and provides it to users of Clojure. Thus, the recommended way to use this library is to add a dependency on the latest version of Clojure 1.9, rather than including it directly. In some cases, this library may release more frequently than Clojure. In those cases, you can explictly include the latest version of this library with the dependency info below.
NOTE: This library is alpha and subject to breaking changes. At a future point, there will be a non-alpha stable version of this library.
For more information:
Latest stable release: 0.6.249
deps.edn dependency information:
org.clojure/spec.alpha {:mvn/version "0.6.249"}
Leiningen dependency information:
[org.clojure/spec.alpha "0.6.249"]
Maven dependency information:
<dependency>
<groupId>org.clojure</groupId>
<artifactId>spec.alpha</artifactId>
<version>0.6.249</version>
</dependency>
Copyright (c) Rich Hickey, and contributors, 2018-2023. All rights reserved. The use and distribution terms for this software are covered by the Eclipse Public License 1.0 (https://opensource.org/licenses/eclipse-1.0.php) which can be found in the file epl-v10.html at the root of this distribution. By using this software in any fashion, you are agreeing to be bound bythe terms of this license. You must not remove this notice, or any other, from this software.
Overall
Maintained
Code review
Latest release
Releases this year
140 followers · starred Jun 2018
557 followers · starred Jul 2018
17 followers · starred Sep 2019
Clojure library to describe the structure of data and functions
Clojure
242
228 commits
updated Jan 2, 2026
spec is a Clojure library to describe the structure of data and functions. Specs can be used to validate data, conform (destructure) data, explain invalid data, generate examples that conform to the specs, and automatically use generative testing to test functions.
Clojure 1.9 depends on this library and provides it to users of Clojure. Thus, the recommended way to use this library is to add a dependency on the latest version of Clojure 1.9, rather than including it directly. In some cases, this library may release more frequently than Clojure. In those cases, you can explictly include the latest version of this library with the dependency info below.
NOTE: This library is alpha and subject to breaking changes. At a future point, there will be a non-alpha stable version of this library.
For more information:
Latest stable release: 0.6.249
deps.edn dependency information:
org.clojure/spec.alpha {:mvn/version "0.6.249"}
Leiningen dependency information:
[org.clojure/spec.alpha "0.6.249"]
Maven dependency information:
<dependency>
<groupId>org.clojure</groupId>
<artifactId>spec.alpha</artifactId>
<version>0.6.249</version>
</dependency>
Copyright (c) Rich Hickey, and contributors, 2018-2023. All rights reserved. The use and distribution terms for this software are covered by the Eclipse Public License 1.0 (https://opensource.org/licenses/eclipse-1.0.php) which can be found in the file epl-v10.html at the root of this distribution. By using this software in any fashion, you are agreeing to be bound bythe terms of this license. You must not remove this notice, or any other, from this software.
Overall
Maintained
Code review
Latest release
Releases this year
140 followers · starred Jun 2018
557 followers · starred Jul 2018
17 followers · starred Sep 2019