Hellhound 1.0.0-SNAPSHOT

Released under the MIT License

Build asynchronous, high performance and scalable applications at ease.

Installation

To install, add the following dependency to your project or build file:

[codamic/hellhound "1.0.0-SNAPSHOT"]

Namespaces

hellhound.component

Components are the main parts of HellHound systems. Basically each components should be an implementation of IComponent. The protocol which defines a component functionality. By default HellHound implements IComponent protocols for hashmaps only. So we can define components in form of maps.

Public variables and functions:

hellhound.components.core

A very light weight and effecient implementation of clojure components.

Public variables and functions:

    hellhound.components.transform

    transform component is a really simple component to transofrm the incoming data and send the result to the output stream.

    Public variables and functions:

    hellhound.components.webserver

    The default web/websocket server component of HellHound.

    Public variables and functions:

    hellhound.config

    This namespace contains core functions which are required by the whole framework in order to operate. Functions which provide easy way to read application configurations based on current environment. Default environment is development. In order to change the environment you need to set the HH_ENV environment variable to new value like production.

    hellhound.config.defaults

    This namespace contains default values for HellHound configuration

    Public variables and functions:

    hellhound.config.helpers

    Several helper functions to make life easier when using then hellhound configuration.

    Public variables and functions:

    hellhound.config.parser

    Parser functions for hellhound edn configuration files live in this namespace. This namespace contains several helpers functions to load a edn configuration file from classpath.

    Public variables and functions:

    hellhound.core

    Public variables and functions:

    hellhound.env

    Public variables and functions:

    hellhound.http

    This namespace contains several shortcuts and helpers to work with HellHound’s HTTP features such as router, websocket, etc.

    Public variables and functions:

    hellhound.http.handlers

    A collection of useful Ring handlers to be used with a Ring router. In case of HellHound, hellhound.http.route.

    Public variables and functions:

    hellhound.http.route

    HellHound’s http router namespace. DOCTODO

    hellhound.http.websocket

    Websocket module of HellHound is responsible for creating a websocket server on top of Immutant server and dispatch the event coming from clients to event-router and send back the result

    hellhound.http.websocket.core

    Each packer should implement IPacker protocol. For more information and an example checkout hellhound.http.websocket.json namespace.

    Public variables and functions:

    hellhound.http.websocket.json

    Pretty simple IPacker implementation for JSON data.

    Public variables and functions:

    hellhound.i18n.core

    I18n features of HellHound is based on [tempura](https://github.com/ptaoussanis/tempura The initialize-i18n function should be called at the beginning of the application in order to set the default configuration and dictionary.

    Public variables and functions:

    hellhound.logger

    hellhound.logger.formatters

    Different types of log formatter functions to be used with timbre for different environments.

    hellhound.logger.middlewares

    Public variables and functions:

    hellhound.ring.response

    This namespace contains several helper function to help users to produce a ring response.

    Public variables and functions:

    hellhound.spec

    Utility namespace for spec management and validation in HellHound.

    Public variables and functions:

    hellhound.system

    Systems are the most important thing in the HellHound ecosystem. Systems define how your application should work.

    Public variables and functions:

    hellhound.system.core

    All the functions for managing system state live in this namespace. You won’t need to use this namespace directly unless you really know what’s your doing.

    hellhound.system.utils

    TODO

    Public variables and functions:

    hellhound.system.workflow

    System’s workflow a vector describing the dataflow of the system. Components have an input and an output stream. Each stream is a manifold.stream. HellHound connects io of each component to another component based on the desciption given by the :workflow of the system.

    Public variables and functions:

    hellhound.test

    Public variables and functions:

    user

    Public variables and functions: