# slow5lib internal functions
Following are internal functions used in slow5tools and pyslow5 implementations. Documented for slow5lib developers.
These are for internal use only. Subject to major changes any time without notice.
DO NOT USE.
* [slow5_open_with](low_level_api/slow5_open_with.md)
Open a SLOW5 file. User can specify the SLOW5 format.
* [slow5_get_next_mem](low_level_api/slow5_get_next_mem.md)
* [slow5_rec_depress_parse](low_level_api/slow5_rec_depress_parse.md)
* [slow5_get_aux_types](low_level_api/slow5_get_aux_types.md)
gets the pointer to the list of auxiliary field types
* [slow5_get_aux_enum_labels](low_level_api/slow5_get_aux_enum_labels.md)
* [slow5_aux_get_enum](low_level_api/slow5_aux_get_enum.md)
* [slow5_aux_get_enum_array](low_level_api/slow5_aux_get_enum_array.md)
* [slow5_rec_to_mem]
Encodes a SLOW5 record to linear memory.
* [slow5_rec_fwrite]
Print a SLOW5 record in the specified format to a file pointer.
* [slow5_rec_print]
Print a SLOW5 record in the specified format to standard output.
* [slow5_hdr_add_attr]
Adds a new header data attribute.
* [slow5_hdr_add_rg]
Adds a new header read group.
* [slow5_hdr_to_mem]
Encodes a header in to linear memory.
* slow5_hdr_fwrite
* slow5_hdr_print
* slow5_eof_fwrite
* slow5_eof_print
* slow5_press_init
* slow5_press_free
* slow5_aux_meta_add_enum
* slow5_aux_meta_add
* slow5_rec_set
* slow5_rec_set_string
* slow5_aux_meta_init_empty
* slow5_hdr_set
* slow5_hdr_add_rg_data
* slow5_idx_init_empty (used in slow5curl)
* slow5_idx_read (used in slow5curl)