# 7. Binary Data Services

The modules described in this chapter provide some basic services operations for manipulation of binary data. Other operations on binary data, specifically in relation to file formats and network protocols, are described in the relevant sections.

Some libraries described under Text Processing Services also work with either ASCII-compatible binary formats (for example, `re`) or all binary data (for example, `difflib`).

In addition, see the documentation for Python’s built-in binary data types in Binary Sequence Types — bytes, bytearray, memoryview.

- 7.1. `struct` — Interpret bytes as packed binary data
  - 7.1.1. Functions and Exceptions
  - 7.1.2. Format Strings
    - 7.1.2.1. Byte Order, Size, and Alignment
    - 7.1.2.2. Format Characters
    - 7.1.2.3. Examples
  - 7.1.3. Classes
- 7.2. `codecs` — Codec registry and base classes
  - 7.2.1. Codec Base Classes
    - 7.2.1.1. Error Handlers
    - 7.2.1.2. Stateless Encoding and Decoding
    - 7.2.1.3. Incremental Encoding and Decoding
      - 7.2.1.3.1. IncrementalEncoder Objects
      - 7.2.1.3.2. IncrementalDecoder Objects
    - 7.2.1.4. Stream Encoding and Decoding
      - 7.2.1.4.1. StreamWriter Objects
      - 7.2.1.4.2. StreamReader Objects
      - 7.2.1.4.3. StreamReaderWriter Objects
      - 7.2.1.4.4. StreamRecoder Objects
  - 7.2.2. Encodings and Unicode
  - 7.2.3. Standard Encodings
  - 7.2.4. Python Specific Encodings
    - 7.2.4.1. Text Encodings
    - 7.2.4.2. Binary Transforms
    - 7.2.4.3. Text Transforms
  - 7.2.5. `encodings.idna` — Internationalized Domain Names in Applications
  - 7.2.6. `encodings.mbcs` — Windows ANSI codepage
  - 7.2.7. `encodings.utf_8_sig` — UTF-8 codec with BOM signature