# Future IPC questions
There's been more exploration of using custom protocol to deliver a much faster IPC experience.
* [tauri-bindgen](https://github.com/tauri-apps/tauri-bindgen)
## Linux (webkit2gtk)
webkit2gtk has been a problem child for headers and request bodies. Support for headers landed in around 2.36, but support for request bodies only landed in [late feburary 2023](https://github.com/WebKit/WebKit/pull/10714).
If we want to continue supporting distro versions of webkit2gtk, the custom protocol ipc needs to have a fallback.
If we only support newer versions of it (e.g. distributed through flatpak), then this will not be an issue.
If we only support a replacement for webkit2gtk (like CEF) this will not be an issue.
## Mobile support
How does mobile perform IPC right now, can it perform http requests and responses like the rest of desktop custom protocols?
## Fallback
related to issues above, do we need to provide a fallback to the eval ipc methods?
## Downsides of serde-based code generation
For external types from other crates, they don't generate types unless they are included in the source of the crate. You can see this a lot with `#[cfg_attr(feature = "serde", derive(serde)]` across the ecosystem which is why `serde` works so well. Having ubiquitous support for a serde-based codegen would require that crate also having ubiquitous support across the ecosystem. Not likely to happen.
Answer: Would need to generate new types for 3rd party items.
## Downsides of IDL generation
Another format to learn and generate. To generate full types that are better than the above serde problem requires mapping out complex types totally. Because all the types used are generated, every single use of them is essentially a newtype. While simple types might be able to be used themselves, types deriving from items not from the IDL would need to be converted to the type specified to the IDL.
Answer: would need to generate conversion methods for 3rd party items to the generated types. Kind of the opposite of the serde solution.
## Choosing an IDL format
IDL formats are typically either language based or wire-based. On-the-wire formats are typically used when using multiple languages, so they can all co-operate.