hara is a set of libraries extending clojure.core
, a little bit like boost but without the compilation time.
Apart from clojure itself, the language lacks a big, monolithic, kitchen-sink type codebase. hara aims to fill that gap.
All JVM Clojure developers.
The first pieces of the current codebase was committed in 2012. Since then, the project has grown organically based on need and interest.
In many places. Mostly to write libraries that keep this maintainable.
That's a good question. It really depends on what is being built. There's a fair amount of documentation already so please jump in and start exploring.
List of current libraries:
- hara.class - functions for reasoning about classes
- hara.common - primitives declarations and functions
- hara.component - constructing composable systems
- hara.concurrent - methods and datastructures for concurrency
- hara.concurrent.ova - shared mutable state
- hara.concurrent.procedure - controllable execution
- hara.data - maps and representations of data
- hara.event - event signalling and conditional restart
- hara.expression - interchange between code and data
- hara.extend - macros for extensible objects
- hara.function - reasoning about functions
- hara.group - generic typed collections
- hara.io - tools for files and io operations
- hara.io.file - tools for the file system
- hara.io.scheduler - easy and intuitive task scheduling
- hara.io.watch - watch for filesystem changes
- hara.namespace - utilities for namespace manipulation
- hara.object - think data, escape encapsulation
- hara.reflect - java reflection made easy
- hara.sort - micellaneous sorting functions
- hara.string - methods for string manipulation
- hara.test - easy to use test framework
- hara.time - time as a clojure map
- hara.zip - data traversal in style
Copyright © 2016 Chris Zheng
Distributed under the MIT License