Liking cljdoc? Tell your friends :D
releaseCIDependenciesVulnerabilities
devCIDependenciesVulnerabilities

Latest Version Open Issues License

embroidery logo: a cross stitch rendition of the Clojure logo

embroidery

A micro-library for Clojure that provides versions of pmap and future that have first class support for virtual threads on JVMs that support them, and which transparently falls back on Clojure core pmap and future when virtual threads are not supported. These features are opt-in; this library does not monkey patch core Clojure or mess with the thread pools etc. that it sets up. It has no dependencies, other than on Clojure and any supported JVM, and is less than 100 lines of code.

Installation

embroidery is available as a Maven artifact from Clojars.

Trying it Out

Clojure CLI

$ clj -Sdeps '{:deps {com.github.pmonks/embroidery {:mvn/version "RELEASE"}}}'

Leiningen

$ lein try com.github.pmonks/embroidery

deps-try

$ deps-try com.github.pmonks/embroidery

Usage

API documentation is available here, or here on cljdoc, and the unit tests are also worth perusing to see worked examples.

Contributor Information

Contributing Guidelines

Bug Tracker

Code of Conduct

Developer Workflow

This project uses the git-flow branching strategy, and the permanent branches are called release and dev. Any changes to the release branch are considered a release and auto-deployed (JARs to Clojars, API docs to GitHub Pages, etc.).

For this reason, all development must occur either in branch dev, or (preferably) in temporary branches off of dev. All PRs from forked repos must also be submitted against dev; the release branch is only updated from dev via PRs created by the core development team. All other changes submitted to release will be rejected.

Build Tasks

embroidery uses tools.build. You can get a list of available tasks by running:

clojure -A:deps -T:build help/doc

Of particular interest are:

  • clojure -T:build test - run the unit tests
  • clojure -T:build lint - run the linters (clj-kondo and eastwood)
  • clojure -T:build ci - run the full CI suite (check for outdated dependencies, run the unit tests, run the linters)
  • clojure -T:build install - build the JAR and install it locally (e.g. so you can test it with downstream code)

Please note that the release and deploy tasks are restricted to the core development team (and will not function if you run them yourself).

License

Copyright © 2023 Peter Monks

Distributed under the Apache License, Version 2.0.

SPDX-License-Identifier: Apache-2.0

Can you improve this documentation?Edit on GitHub

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close