Skip to content
a simple process model for go
Branch: master
Clone or download
Latest commit bea94bb Aug 2, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
fake_runner Grouper docs Oct 14, 2014
ginkgomon Print a more meaningful error Jun 22, 2018
grouper add QueueOrdered group Aug 2, 2018
http_server replace a racy usage of WaitGroups with channels Jun 21, 2017
proxy proxy tests Sep 24, 2014
restart Grouper docs Oct 14, 2014
sigmon signmon starts propogating signals before ready is called Sep 2, 2014
test_helpers signals propagate as processes exit Jun 18, 2014
.gitignore Initial implementation of grpc support in ifrit Jul 27, 2017
LICENSE fix trailing space Apr 10, 2018 updates docs Nov 5, 2014
ifrit_suite_test.go Runners can be executed via Envoke Apr 25, 2014
process.go Ordered now stops in reverse order Nov 7, 2014
process_test.go Invoke ffs Dec 9, 2015
runner.go docs Oct 3, 2014

Ifrit - a process model for go.

Ifrit is a small set of interfaces for composing single-purpose units of work into larger programs. Users divide their program into single purpose units of work, each of which implements the Runner interface Each Runner can be invoked to create a Process which can be monitored and signaled to stop.

The name Ifrit comes from a type of daemon in arabic folklore. It's a play on the unix term 'daemon' to indicate a process that is managed by the init system.

Ifrit ships with a standard library which contains packages for common processes - http servers, integration test helpers - alongside packages which model process supervision and orchestration. These packages can be combined to form complex servers which start and shutdown cleanly.

The advantage of small, single-responsibility processes is that they are simple, and thus can be made reliable. Ifrit's interfaces are designed to be free of race conditions and edge cases, allowing larger orcestrated process to also be made reliable. The overall effect is less code and more reliability as your system grows with grace.

The full documentation is written in godoc, and can be found at:

You can’t perform that action at this time.