Skip to content
A set of libraries to create asynchronous, high performance, scalable and simple application.
Clojure Other
  1. Clojure 99.2%
  2. Other 0.8%
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
assets
core
dev-resources/environments
docs/guides
extra_components
http
i18n
scripts
utils
.dir-locals.el
.gitignore
.gitlab-ci.yml
.travis.yml
CHANGELOG.md
CODE_OF_CONDUCT.md
CONTRIBUTING.md
LICENSE License Changed to MIT/X11 Jul 13, 2017
README.md
TEMPLATE.org
TODO.org
project.clj

README.md

HellHound

IMPORTANT NOTE: This software is not ready to use yet. It's under heavy development and reaches the alpha stage pretty soon. If you like to be part of this process please leave me a message.


Guides | API Reference | Examples | How to contribute?

Build Status Clojars Project

What is HellHound

HellHound is a set of libraries to create simple and elegant programs based on streams. An HellHound application basically is a system of components which work together in order to achieve a common goal. Components form one or more data pipelines through workflows. In general systems are a great way to manage the lifecycle and data flow or your program and components are awesome for managing the state and dependencies of different pieces of your program.

HellHound provides different built-in components for different types of systems. For example Webserver component for creating a fullstack web application, or a kafka component for a data processing application. For more information checkout the guides and Examples.

Road Map for next stable version

Our near future goals are:

  • Support for configurable execution model for the entire system and components as well. In addition to manage the execution model of the system automatically by HellHound, We like to add a configurable execution model which allows users to change the behavior based on the use case. For example user might want to run a component on a blocking thread pool or control the number of threads in each thread pool under hood.

  • Support for Kafka streams. We're working on adding the support for kafka streams in our stream abstractions so users can easily take advantage of good features of Apache Kafka in their systems. (Development Started)

  • Support for IO spec for each component. The basic idea is to add the support for a pair of configurations to components that allow them to define specs for incoming and outgoing messages. It should be possible to enforce these spec on messages. Another purpose of having these specs is to create a diagram later that demonstrates how data transform in the system. This way by creating the diagram in any given time, as a developer we would have better understanding of our system and data flow. This feature would be awesome specially for new developers.

  • Better support for REPL driven development

If you like to help us with any of these. Give us a shout.

Branching guide

The master branch of this repo is for development purposes. In order to get the latest stable code please checkout the stable branch.

Where to get help

Why did we move from Github?

We're not happy with Microsoft buying Github and we don't trust a company like Microsoft because of their history and their strategies (For more information take a look at (Halloween documents). So we decided to move to Gitlab as an alternative and we are happy here (Gitlab) so far.

License

Copyright © 2016-2018 Sameer Rahmani <@lxsameer>.

Distributed under the MIT License.

You can’t perform that action at this time.