# katcp
[](#license)
[](https://docs.rs/katcp/latest/katcp/index.html)
[](https://www.rust-lang.org)
[](https://github.com/kiranshila/katcp/actions)
[](https://app.codecov.io/gh/kiranshila/katcp)
This crate provides a rust implementation of the [KATCP](https://katcp-python.readthedocs.io/en/latest/_downloads/361189acb383a294be20d6c10c257cb4/NRF-KAT7-6.0-IFCE-002-Rev5-1.pdf)
monitor and control protocol, as described by the Karoo Array Telescope (KAT) project from the Square Kilometer Array (SKA) South Africa group.
### Description
From the official specification:
> Broadly speaking, KATCP consists of newline-separated text messages sent asynchronously over a TCP/IP
> stream. There are three categories of messages: requests, replies and informs. Request messages expect some
> sort of acknowledgement. Reply messages acknowledge requests. Inform messages require no acknowledgement
> Inform messages are of two types: those sent synchronously as part of a reply and those sent asynchronously.
The details of orchestrating a client or server for this protocol is not the goal of this crate. Rather, this crate
only provides the core `protocol::Message` type and the core message formats. It is up to the user of this crate to implement a client or server. This is to allow this library to be small and portable and not to have to make any assumptions about the eventual implementation.
### License
katcp is distributed under the terms of both the MIT license and the Apache License (Version 2.0).
See [LICENSE-APACHE](LICENSE-APACHE) and [LICENSE-MIT](LICENSE-MIT) for details.