---
title: Framer Protocol Options
framework: network
role: collectionGroup
role_heading: API Collection
path: network/framer-protocol-options
---

# Framer Protocol Options

Create custom protocols to frame applications messages over a connection.

## Topics

### Adding Framers to Connections

- [nw_framer_create_definition(_:_:_:)](network/nw_framer_create_definition(_:_:_:).md)
- [nw_framer_start_handler_t](network/nw_framer_start_handler_t.md)
- [nw_framer_t](network/nw_framer_t.md)
- [nw_framer_start_result_t](network/nw_framer_start_result_t.md)
- [NW_FRAMER_CREATE_FLAGS_DEFAULT](network/nw_framer_create_flags_default.md)
- [nw_framer_create_options(_:)](network/nw_framer_create_options(_:).md)

### Handling Output Data

- [nw_framer_set_output_handler(_:_:)](network/nw_framer_set_output_handler(_:_:).md)
- [nw_framer_output_handler_t](network/nw_framer_output_handler_t.md)
- [nw_framer_parse_output(_:_:_:_:_:)](network/nw_framer_parse_output(_:_:_:_:_:).md)
- [nw_framer_parse_completion_t](network/nw_framer_parse_completion_t.md)
- [nw_framer_write_output(_:_:_:)](network/nw_framer_write_output(_:_:_:).md)
- [nw_framer_write_output_data(_:_:)](network/nw_framer_write_output_data(_:_:).md)
- [nw_framer_write_output_no_copy(_:_:)](network/nw_framer_write_output_no_copy(_:_:).md)
- [nw_framer_pass_through_output(_:)](network/nw_framer_pass_through_output(_:).md)

### Handling Input Data

- [nw_framer_set_input_handler(_:_:)](network/nw_framer_set_input_handler(_:_:).md)
- [nw_framer_input_handler_t](network/nw_framer_input_handler_t.md)
- [nw_framer_parse_input(_:_:_:_:_:)](network/nw_framer_parse_input(_:_:_:_:_:).md)
- [nw_framer_parse_completion_t](network/nw_framer_parse_completion_t.md)
- [nw_framer_deliver_input(_:_:_:_:_:)](network/nw_framer_deliver_input(_:_:_:_:_:).md)
- [nw_framer_deliver_input_no_copy(_:_:_:_:)](network/nw_framer_deliver_input_no_copy(_:_:_:_:).md)
- [nw_framer_pass_through_input(_:)](network/nw_framer_pass_through_input(_:).md)

### Customizing Framer Messages

- [nw_framer_message_t](network/nw_framer_message_t.md)
- [nw_protocol_metadata_is_framer_message(_:)](network/nw_protocol_metadata_is_framer_message(_:).md)
- [nw_framer_protocol_create_message(_:)](network/nw_framer_protocol_create_message(_:).md)
- [nw_framer_message_create(_:)](network/nw_framer_message_create(_:).md)
- [nw_framer_message_set_value(_:_:_:_:)](network/nw_framer_message_set_value(_:_:_:_:).md)
- [nw_framer_message_dispose_value_t](network/nw_framer_message_dispose_value_t.md)
- [nw_framer_message_set_object_value(_:_:_:)](network/nw_framer_message_set_object_value(_:_:_:).md)
- [nw_framer_message_access_value(_:_:_:)](network/nw_framer_message_access_value(_:_:_:).md)
- [nw_framer_message_copy_object_value(_:_:)](network/nw_framer_message_copy_object_value(_:_:).md)

### Managing Instance Lifetime

- [nw_framer_mark_ready(_:)](network/nw_framer_mark_ready(_:).md)
- [nw_framer_mark_failed_with_error(_:_:)](network/nw_framer_mark_failed_with_error(_:_:).md)
- [nw_framer_prepend_application_protocol(_:_:)](network/nw_framer_prepend_application_protocol(_:_:).md)
- [nw_framer_set_stop_handler(_:_:)](network/nw_framer_set_stop_handler(_:_:).md)
- [nw_framer_stop_handler_t](network/nw_framer_stop_handler_t.md)
- [nw_framer_set_cleanup_handler(_:_:)](network/nw_framer_set_cleanup_handler(_:_:).md)
- [nw_framer_cleanup_handler_t](network/nw_framer_cleanup_handler_t.md)

### Inspecting Instance Properties

- [nw_framer_copy_remote_endpoint(_:)](network/nw_framer_copy_remote_endpoint(_:).md)
- [nw_framer_copy_local_endpoint(_:)](network/nw_framer_copy_local_endpoint(_:).md)
- [nw_framer_copy_parameters(_:)](network/nw_framer_copy_parameters(_:).md)

### Handling Asynchronous Events

- [nw_framer_schedule_wakeup(_:_:)](network/nw_framer_schedule_wakeup(_:_:).md)
- [NW_FRAMER_WAKEUP_TIME_FOREVER](network/nw_framer_wakeup_time_forever.md)
- [nw_framer_set_wakeup_handler(_:_:)](network/nw_framer_set_wakeup_handler(_:_:).md)
- [nw_framer_wakeup_handler_t](network/nw_framer_wakeup_handler_t.md)
- [nw_framer_async(_:_:)](network/nw_framer_async(_:_:).md)
- [nw_framer_block_t](network/nw_framer_block_t.md)

## See Also

### Network Protocols

- [TCP Options](network/tcp-options.md)
- [TLS Options](network/tls-options.md)
- [QUIC Options](network/quic-options.md)
- [UDP Options](network/udp-options.md)
- [IP Options](network/ip-options.md)
- [WebSocket Options](network/websocket-options.md)
