IAP stands for Internet Application Protocol. During development of VStack.co we realized that HTTP is not 100% suited for the services we planned to provide. We analysed the situation in more depth and realized that HTTP is a bad fit for many network communication use cases.
The Internet of Things (IoT) will significantly increase the number of different devices communicating via the internet. Different devices send and receive different types of data and use different communication patterns. A new alternative network protocol is needed that takes that into account.
Likewise the next generation of the web, the Internet of Everything, or Web 3.0 (or whatever name it gets), will most likely add new types of data and communication patterns to the ones already existing. A new network protocol should attempt to take that into consideration too.Compact, Fast Default Data Format
IAP contains a fast, compact, flexible, binary data format called ION. This data format contains predefined data structures for the most commonly used data types, but allows for custom data types when these are not sufficient. In case ION is inappropriate for a certain use case, raw bytes (and thus other encodings) can be embedded easily in ION.Semantic Protocols
IAP allows different semantic protocols to run embedded within IAP. The IAP specification will predefine a set of semantic protocols for common tasks, but an application can define its own semantic protocol if necessary. Over time more and more semantic protocols can be defined, so the Internet of software and hardware can plug-and-play more easily.Message Oriented
IAP is a message oriented protocol. The communicating parties exchange messages. IAP is designed for free flow message exchange meaning either solely in one direction, request-response style or bi-directional independent message exchange. A single request message could be answered with multiple response messages, or multiple request messages answered with a single response message. Messages can be routed by intermediate nodes who know nothing about the schema of the routed messages.No Fixed Node Roles
The IAP specification has no opinion about which party is the " client" and which is the "server". Hence, IAP only cares about communicating "nodes". What roles the communicating parties have and as a result what message exchange patterns to use is up to the communicating parties. Typically, roles and message exchange patterns depend on what semantic protocol the communicating parties use.IAP Status
IAP is still in development. ION is a lot closer to stable. You can follow the work on IAP and ION here: IAP Specification. Feel free to give us feedback on IAP and ION!