[![Build Status]][Actions] [![Latest Version]][crates.io] [![Documentation]][docs.rs]
[Build Status]: https://github.com/ajfabbri/cot-proto/actions/workflows/ci.yml/badge.svg
[Actions]: https://github.com/ajfabbri/cot-proto/actions/workflows/ci.yml
[Latest Version]: https://img.shields.io/crates/v/cot_proto.svg
[crates.io]: https://crates.io/crates/cot\_proto
[Documentation]: https://img.shields.io/crates/v/cot-proto?label=docs&color=%231122ee&link=https%3A%2F%2Fdocs.rs%2Fcot-proto
[docs.rs]: https://docs.rs/cot_proto
# Cursor on Target (COT) Protocol
This library aims to provide a simple way to produce (serialize) and consume
(deserialize) Cursor on Target (CoT) messages from the Rust programming
language.
API docs are available at [docs.rs/cot_proto](https://docs.rs/cot_proto).
Some example usage can be found at [cot-send-example.git](https://github.com/ajfabbri/cot-send-example).
### Initial goals:
- Support for base CoT schema.
- Basic Rust structs for CoT messages, with serde support.
- Types for interoperating with TAK / ATAK, e.g. placing a marker on the map.
### TODOs
- [ ] Add more typed schemas for common detail contents (sub-schemas)
## References
The following sources were used to help develop this library:
1. Michael J. Kristan et al. November 2009 [Cursor on Target (CoT) Message Router User's Guide](https://www.mitre.org/sites/default/files/pdf/09_4937.pdf).
2. Mitre Corporation, via CoTreceiver. Captured Nov 2024. [CoT Schema Definitions (XSD)](https://github.com/mdudel/CoTreceiver/tree/master/lib/xsd)
3. Android Tactical Assualt Kit (ATAK) CIV. Captured Nov 2024. [takcot/examples](https://github.com/deptofdefense/AndroidTacticalAssaultKit-CIV/tree/main/takcot/examples)