Documentation

Documentation

Install it, run it, and learn the vocabulary the rest of the site assumes. If you have never touched HL7 before, read Concepts first; if you have, the quick start is five minutes.

In this section

Which crate do I need?

Fourteen crates is a lot to face on day one. In practice the answer is short, and it depends on one question: what does the system at the other end send you?

Pipe-delimited HL7 v2 text, and you want to read or write it
cargo add hl7 and use hl7::v2. That is the umbrella crate re-exporting hl7-2, which is where essentially all the v2 capability lives. Everything else in the workspace is a layer around it.
The same, but over a TCP socket
Add hl7-2-mllp. MLLP is how HL7 v2 actually crosses a network, and the crate covers framing, streaming, transports, and acknowledgements.
The same, but over HTTP with a WSDL
Add hl7-2-soap. It turns bytes into meaning and back and leaves the socket to whatever HTTP stack you already use.
You need the messages as XML or JSON for something downstream
The four conversion crates, or their command-line tools if you would rather not write Rust at all.
HL7 v3 XML — a CDA-adjacent document, a national registry, an IHE profile
hl7-3 for the model, and hl7-3-soap for the transport. Read that crate's scope section first: it is a foundation, not a complete implementation of v3.

See Architecture for the full map and the reasoning.

Everywhere else on this site

Guides

One task at a time, with the API calls that do it.

All 10 guides →

Tutorials

Longer, start-to-finish walkthroughs you can follow at a keyboard.

Where the authority lives

This website is an introduction and a map. It is not normative, and it deliberately does not restate conversion rules or parsing rules in its own words. Four places carry actual authority, in this order:

  1. Each crate's spec/index.md — numbered, section by section, the single source of truth for that crate's behavior.
  2. The crate's rustdoc on docs.rs, generated from the code that ships.
  3. The crate's README.md, which is a tour rather than a specification.
  4. This site, which summarises all three and links back to them.

Where any two disagree, the higher one wins — and the lower one is a bug worth reporting. See Support and contributing.