# \[ANN\] intel\_hex.0.3

**URL:** <https://discuss.ocaml.org/t/ann-intel-hex-0-3/17771>\
**Category:** Community\
**Tags:** embedded, announce\
**Created:** [February 3, 2026, 10:01am UTC](https://discuss.ocaml.org/t/ann-intel-hex-0-3/17771 "2026-02-03T10:01:40Z")\
**Posts on this page:** 1\
**Showing post:** 1

<div class="post-metadata">

**Author:** ![dx3mod](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/dx3mod/32/6740_2.png) [@dx3mod](https://discuss.ocaml.org/u/dx3mod)\
**Post date:** [February 3, 2026, 10:01am UTC](https://discuss.ocaml.org/t/ann-intel-hex-0-3/17771/1 "2026-02-03T10:01:40Z")

</div>

Hi there!

I am excited to announce the release of the [intel\_hex](https://github.com/dx3mod/intel_hex) library. This library is a manipulation library that provides functions for reading, writing, and creating Intel HEX data, which is a common format used in embedded system programming.

```ocaml
Intel_hex.Record.
  [
      Extended_segment_address 0x0F;
      Data (0x0000, "Hello ");
      Data (0x0007, "World!");
      End_of_file;
  ]
|> Intel_hex.records_to_string 
|> print_endline

```

```auto
:02000002000FED
:0600000048656C6C6F20E6
:06000700576F726C6421CA
:00000001FF

```

Also, you can of course read the IHEX object file from other sources:

```ocaml
In_channel.with_open_text "data.hex" Intel_hex.object_of_channel

```

```ocaml
- : Intel_hex.Object.t = 
{ 
  start_linear_address = 0;
  start_segment_address = {cs = 0; ip = 0};
  chunks = [(240, "Hello "); (247, "World!")]
}

```

Limitations

32-bitness. To represent 32-bit integers, the library uses the OCaml int data type. This may be problematic for 32-bit systems, as it can lead to overflow errors, but it works fine for most 64-bit systems.

Start addressing and extending addressing. Not fully supported for real-world use. I would appreciate your pull request on this!

---

_[View the full topic](https://discuss.ocaml.org/t/ann-intel-hex-0-3/17771)._
