It is one of the most advanced and multipurpose networking libraries available which utilizes communication over TCP and UDP transport layer protocols. The supported topology is universal and includes all possible types: client-server, only client, only server. iAuxNET is designed to be very universal and can be used as for development of MMO/FPS/Other games, so for all other network-aware applications.
TCP/UDP Multipurpose
iAuxNET is a multipurpose networking library with flexible API design that allows to develop application of any complexity. It provides low latency data communication and robust high-performance operations in application with thousands of active network connections. Is is possible to mix communication based on TCP and UDP sockets in a single application.
Versatile Topology
iAuxNET can be used either for server-side, client-side, or for both.
Raw Data & High Level Protocols
- Low-level raw network data processing:
This type allows to build communication with any network application, e.g. making just client or server, or both. Developer deals with raw network data and has to build own high-level communication protocol.
- Communication through high-level protocols:
For a full client-server mode there are high-level protocols "Protocol V1/V2" which are optimized for either TCP or UDP sockets. These protocols provide extended functionality, such as: data integrity control using CRC7, data and packet headers encryption, reliability enhancement for UDP with time-stamp and packet ordering.
Protocol Layers & Chaining
iAuxNET API provides special mechanism to build a chain of protocol layers which can receive, intercept, and process network data packets, even with different priorities assigned. Application can use different data processors depending on current run-time conditions, for example when system resources became low.
IP Firewall
iAuxNET has built-in IP firewall protection for incoming connections which can be activated for a TCP or UDP network listener. Firewall is capable of controlling incoming broad and multi casted connections. It operates in 4 modes: Allow All, Deny All, Allow then Deny, Deny then Allow.
RPC (Remote Procedure Call)
There is a full support of remote calling of global C or class-based C++ procedures (RPC). RPC supports all primitive numeric types, single and multi-dimensional arrays of numeric or POD (structure/union) types. You can also inject your own serializing interface for more complex types which are used as function parameters. RPC core is not a global interface and can be hosted by a multiple protocol layers. Thanks to layers chaining functionality it is even possible to create chains of RPC layers managing own number of RPC callable functions.
Adaptive Performance
iAuxNET can be characterized by an extremely low latency of data processing, low CPU and memory usage on a thousands of active connections. It uses advanced back-end technologies, such as: IO Completion Ports (IOCP) for Windows platforms, Enhanced Poll (Epoll) for Linux, and Kernel Queue (KQueue) for MacOSX. Besides that, developer is able to downgrade the use of these advanced back-end technologies to a simple methods like Select or Poll.
Optimal Bandwidth
An advanced implementation of the data buffering allows to build network packets using any large data type without a need to worry about waste of network bandwidth. Due to packing techniques manual data size optimization is not required anymore!
Multicasting & Broadcasting
iAuxNET provides support for the multi and broad casting technologies. High-level built-in protocols "Protocol V1/V2" and layers can also be used for such communication model.
MMO Ready
iAuxNET SDK provides ready-made MMO examples for the server's topology including Logon, Realm, World servers. You can now jump into MMO server's design and test it right away! iAuxNET is capable of handling thousands of connections and before actual design of your software you can train your server model at little cost of time.
Mobile Platform
Mobile platforms are supported including Windows Mobile 6/6.5, iOS (iPhone/iPad/iPod) and Android.
Features
Communication protocols: TCP, UDP, multi-/broad- casting UDP.
Address families: IPv4, IPv6.
High-level data communication protocols for TCP and UDP communication.
Back-end: Select, Poll, KQueue, Epoll, IO Completion Ports (IOCP).
RPC (Remote Procedure Call).
Built-in cryptographic services:
- Hash generators: CRC32, CRC64, MD-5, SHA-1;
- Block ciphers: TwoFish, BlowFish, GOST 28147-89;
- Stream ciphers: Alleged RC4, OFB mode for block ciphers, CFB mode for block ciphers;
- Message Authentication Code: HMAC;
- Custom user algorithms are possible.
Provides low-level interface for Poll, Epoll. iAuxNET Poll emulation is 2x faster than WSAPoll interface under Windows Vista, Epoll emulation uses IOCP under Windows platform. Epoll emulated interface allows to port native Linux applications which are based on Epollto Windows or MacOSX platforms.
Data compression: DEFLATE algorithm (LZ77/Huffman encoding), Integral types packing.
Seamless operations between little- and big- endian machines.
Extended functionality: address/host resolving, network interface resolving, dimensionless bit-masks, network optimized data types.
Mobile platform support.
Interface language: C++ (C optional).
Compiler/IDE support: Microsoft Visual Studio for C++, XCode, GCC 4.x (Windows/Linux/Mac).
Advanced API design with rich inline documentation.
OS: Windows XP/Vista/7 (32/64 bit), Windows Mobile 6 (ARMv4), Windows Mobile 6.5.3 (ARMv5), Linux (32/64 bit), MacOSX 10.5+ (x86 32/64 bit, ppc), iOS (iPhone/iPad/iPod-Device/Emulator), Android (Device/Emulator)