# Client connections

> Connect your client to the server over HTTP, a message channel, or a direct call.

## Choose how the client connects

| Connection                                                                      | Choose it when                                                      | The application owns                                      |
| ------------------------------------------------------------------------------- | ------------------------------------------------------------------- | --------------------------------------------------------- |
| [HTTP calls with Fetch](https://hulla.dev/docs/api/transports/fetch.md)         | The caller reaches the server over HTTP or already uses Fetch APIs. | Authentication, cookies, retries, and the base URL.       |
| [Same-process calls](https://hulla.dev/docs/api/transports/in-process.md)       | The caller can safely import the server implementation.             | Server-only module placement and process lifetime.        |
| [Workers and IPC](https://hulla.dev/docs/api/transports/message-port.md)        | The caller and server communicate through MessagePort-style IPC.    | Port transfer, access policy, and port lifetime.          |
| [WebSocket connections](https://hulla.dev/docs/api/transports/websocket.md)     | Calls need a dedicated long-lived network connection.               | Upgrades, authentication, origin checks, and reconnects.  |
| [Desktop IPC bridges](https://hulla.dev/docs/api/transports/desktop-bridges.md) | A desktop host must hand calls between web and native processes.    | Native routing, capabilities, handoff, and host shutdown. |

## Documentation

- [HTTP calls with Fetch](https://hulla.dev/docs/api/transports/fetch.md): Send API calls over HTTP and handle them with Fetch APIs.
- [Same-process calls](https://hulla.dev/docs/api/transports/in-process.md): Call your API directly when the client and server run in the same process.
- [Workers and IPC](https://hulla.dev/docs/api/transports/message-port.md): Call your API in a worker or another process through a message channel.
- [WebSocket connections](https://hulla.dev/docs/api/transports/websocket.md): Send typed API calls and response streams over a WebSocket.
- [Desktop IPC bridges](https://hulla.dev/docs/api/transports/desktop-bridges.md): Call your API through an Electron, Tauri, or Dioxus message bridge.
