iAuxNET: networking engine is multipurpose and cross-platform programming library for Network sub-system for C++ development of games and other software. Its functionality suits well as for game development so for development of applications where network communication is required. iAuxNET's target is to provide high-level and convenient, but in the same time, powerful interface for network programming.
TCP/UDP
iAuxNET: networking engine is universal and supports both transport protocols - TCP and UDP. Being developed as universal library it operates same efficiently using any of these protocols.
Low-Level I/O
iAuxNET: networking engine's API allows processing of network data which is not produced by its own protocols. User designs own protocol algorithm which fits the data flow. API provides necessary interfaces to organize data I/O.
High-Level I/O
iAuxNET: networking engine provides ready to use protocols which are optimized for TCP and UDP specifics. These protocols support encryption, data integrity control, packet processors, reliable processing and so on. For a full client-server model it will be the best choice for any application.
Encryption
iAuxNET: networking engine implements several strong encryption algorithms. Its high-level protocols have built-in support for data encryption already.
- 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
- MAC: HMAC (Hash MAC).
Data Buffering
iAuxNET: networking engine supports advanced data buffering which helps to decrease network traffic significantly and is optimized for massive data processing.
- C++ stream-like functionality
- On-the-fly data compression
- Endian-wise operations
Prioritized Processing
iAuxNET: networking engine's API allows chaining of multiple protocols where each sets own priority for the data delivery. Protocol chaining feature allows building of adaptive network data processing systems.
Firewall
iAuxNET: networking engine provides implementation of firewall which acts as IP shield. The firewall can be assigned to TCP/UDP network listener, or can be used directly as standalone service. It operates in four modes: Allow All, Deny All, Allow then Deny, Deny then Allow.
Remote Procedure Call (RPC)
iAuxNET: networking engine supports remote calling of global C, or class-based C++ procedures (RPC). RPC operates with primitive numeric types, single and multi-dimensional arrays of numeric, POD (structure/union) types. There is possibility to provide custom serializing interface for other types.
Low-Latency I/O
iAuxNET: networking engine can be characterized by an extremely low latency of data I/O and low CPU/RAM usage on a thousands of active connections. It uses advanced back-end technologies, such as: IO Completion Ports (IOCP) under Windows platforms, Enhanced Poll (Epoll) under Linux, and Kernel Queue (KQueue) under Apple platforms.
Optimal Bandwidth
iAuxNET: networking engine provides automatic data compression for user provided data. Optimized numeric and textual data packing is done on-the-fly with minimal impact on CPU performance that eliminates the necessity of choosing 'optimal' data type manually during application programming.
MMO Ready
iAuxNET: networking engine's SDK provides basic examples for building client-server networking core of MMO game. iAuxNET is capable of handling thousands of active connections using TCP or UDP transport protocols.
GUI Monitor
iAuxNET: networking engine's extended functionality is supported by dedicated GUI tool - iAuxNET: Monitor. This application provides convenient GUI to monitor operations of applications which utilize iAuxNET: networking engine:
- Remote colorful logging
- Remote management through console
- Real-time bandwidth monitoring
- Active connections monitoring (errors, bandwidth)
- Offline log analysis
- Offline statistics
Asynchronous Logging
iAuxNET: networking engine provides implementation of asynchronous text logging system. It is operated by a separate thread and outputs log messages to console window and file. Logger has several log levels and colorful logging for easier log messages perception and offline analysis.
Customizable Console
iAuxNET: networking engine's console is fully customizable and understands keyboard input made in console window. It is very useful for console only servers. Commands can be executed remotely by means of iAuxNET: Monitor GUI Tool.
Features
- Transport protocols: TCP, UDP
- Address types: IPv4, IPv6
- UDP Broadcasting
- UDP Multicasting: IPv4, IPv6
- High-level protocols for TCP and UDP
- Interface for user-side custom protocols
- Reliable UDP
- Event processing: Select, Poll, KQueue, Epoll, IO Completion Ports (IOCP)
- Remote Procedure Call (RPC)
- Encryption:
- Hash: 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-side algorithms through interface
- Data compression: DEFLATE (LZ77/Huffman), Huffman-Vitter, automatic: numeric and textual data packing
- Interface: C++ with inline documentation of functions, interfaces, parameters
- Precompiled binary: Microsoft Visual C++, GNU Compiler Collection (GCC), Intel C/C++
- Platform:
- PC: Microsoft Windows (XP SP2, Vista, 7), Linux, Apple Mac OS X
- Mobile: Google Android, Apple iOS, Palm/HP webOS, Microsoft Windows Mobile 6/6.5, Samsung bada OS*
- Console: available by request


