NetworkGigapxy is a product of many features, most of them targeting enterprise-scale usage. Below are given the most important of the features. For the exhaustive list please refer to the official manpage.

Feature summary:

  • Scalability: spread engine processes across cores, control which cores are used;
  • Resilience: one engine/process falls, others still go on - contain the damage;
  • 1xN streaming: one input stream, many output connections - saves CPU cycles;
  • IPv6 support out of the box, go across protocols at ease;
  • Daisy-chains: allow requests to link together multiple gigapxy instances;
  • Fast channel switching: streams are cached, switching is fast;
  • Access log captures application events: client/channel open/close;
  • Separate listeners: administrative stay apart from user requests;
  • RTP stripping: detect and automatically strip RTP headers;
  • Bad-channel redirection: redirect client via HTTP 302 if cannot subscribe;
  • Online reports: (HTML or XML) with traffic statistics;
  • Authentication via user-written (in any language) plug-ins;
  • Negative cache: unauthorized queries are cached for faster processing;
  • Aliased channels: name your channels, subscribe by name.
  • SSM (source-specific multicast): take advantage of IGMPv3, filter data by source.

Scalability and resilience

Gigapxy's architecture allows to take advantage of multiple CPU's/cores by letting the user be in charge of how many worker processes to run and how the load is balanced between the workers. Each process can be mapped to a particluar CPU/core for better efficiency.

Gigapxy's architecture allows any application process to crash (and be re-started) without affecting the work of others. A worker's crash won't affect other workers or the main server. The main server's crash will not interrupt data feed for any channel or client. Yes, it is quite possible.

Channel multiplexing

A channel gets subscribed to only once, then its data is continuously saved into a common storage (disk or memory). All clients feeding off that channel read the same data from the same storage, thus dramatically saving on data-processing resources and data-access time. In the end, due to such data caching, the average time to switch between channels is dramatically reduced.

Reports and Access Control

Reports on the application's vital statistics (channels, clients, speed, uptime, etc.) can be pulled in HTML or XML. Gigapxy uses a very economical mechanism to gather statistics across all worker processes, so keeping accurate statistics costs very little.

Access control is maintained using easy-to-write plug-ins (authorization helpers), receiving messages via STDIN and replying via STDOUT. Each client request goes to a helper and gets evaluated by the embedded (custom) logic, using any third-party components available.