hara
What is It?
hara is a set of libraries extending clojure.core
, a little bit like boost but without the compilation time.
Why was it made?
Apart from clojure itself, the language lacks a big, monolithic, kitchen-sink type codebase. hara aims to fill that gap.
Who is this targeting?
All JVM Clojure developers.
When was this started?
The first pieces of the current codebase was committed in 2012. Since then, the project has grown organically based on need and interest.
Where has it been used?
In many places. Mostly to write libraries that keep this maintainable.
How to begin?
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.
Okay, lets go!
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
License
Copyright © 2016 Chris Zheng
Distributed under the MIT License