# Terminus
![Terminus - Crawl and subscribe to Bitcoin transaction events using Bitbus, Bitsocket and BitFS.](https://github.com/libitx/terminus/raw/master/media/poster.jpg)
![Hex.pm](https://img.shields.io/hexpm/v/terminus?color=informational)
![License](https://img.shields.io/github/license/libitx/terminus?color=informational)
![Build Status](https://img.shields.io/github/workflow/status/libitx/terminus/Elixir%20CI)
Terminus allows you to crawl and subscribe to Bitcoin transaction events and download binary data from transactions, using a combination of [Bitbus](https://bitbus.network) and [Bitsocket](https://bitsocket.network), and [BitFS](https://bitfs.network).
Terminus provides a single unified interface for querying Planaria corp APIs in a highly performant manner. Each request is a `GenStage` process, enabling you to create powerful concurrent data flows. Terminus may well be the most powerful way of querying Bitcoin in the Universe!
* [Full documentation](https://hexdocs.pm/terminus)
## Installation
The package can be installed by adding `terminus` to your list of dependencies in `mix.exs`.
```elixir
def deps do
[
{:terminus, "~> 0.1"}
]
end
```
## Getting started
Terminus can be used as a simple API client, or a turbo-charged, concurrent multi-stream Bitcoin scraper on steroids. You decide.
The following documented modules, are the primary ways of using Terminus.
* [`Terminus.Bitbus`](https://hexdocs.pm/terminus/Terminus.Bitbus.html) - functions for crawling and query confirmed Bitcoin transactions.
* [`Terminus.Bitsocket`](https://hexdocs.pm/terminus/Terminus.Bitsocket.html) - query mempool transactions and listen to realtime transaction events.
* [`Terminus.BitFS`](https://hexdocs.pm/terminus/Terminus.BitFS.html) - fetch binary data blobs embedded in Bitcoin transactions.
* [`Terminus.Omni`](https://hexdocs.pm/terminus/Terminus.Omni.html) - conveniently fetch confirmed and mempool transactions together.
* [`Terminus.Planaria`](https://hexdocs.pm/terminus/Terminus.Planaria.html) - run Bitcoin scraper processes under your application's supervision tree.
## License
Terminus is open source and released under the [Apache-2 License](https://github.com/libitx/terminus/blob/master/LICENSE).
© Copyright 2020 Chronos Labs Ltd.