LibIRCClient 1.10 Used by Probotic
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.

59 lines
2.9KB

  1. =====================
  2. Introduction
  3. =====================
  4. Overview
  5. ~~~~~~~~
  6. Libircclient is a small but extremely powerful library which implements the client IRC protocol. It is designed to be small, fast, portable and compatible
  7. with the RFC standards as well as non-standard but popular features. It is perfect for building the IRC clients and bots.
  8. Features
  9. ~~~~~~~~
  10. - Comprehensive C API;
  11. - Full coverage of the IRC protocol using providing functions;
  12. - Supports multiple simultaneous connection to different IRC servers or even to the same server;
  13. - Supports both plain and SSL connections to the IRC servers with the optional certificate check;
  14. - Full multi-threading support, the library is thread-safe;
  15. - All the processing could be handled by a single thread even if multiple connections are used;
  16. - Non-blocking, asynchronous event-based interface implemented with callbacks;
  17. - Extra support for the socket-based applications, which use select();
  18. - CTCP support with optional build-in reply code;
  19. - Supports CTCP PING necessary to pass the “spoof check” implemented by most IRC servers;
  20. - Flexible DCC support, including both DCC chat, and DCC file transfer;
  21. - Can both initiate and react to initiated DCC;
  22. - Can accept or decline DCC sessions asynchronously;
  23. - Written in plain C, very small binary size (around 30K depending on platform);
  24. - Compatible all tested IRC clients;
  25. - Free software licensed under the LGPLv3 license;
  26. - Supports Linux as well as any POSIX-compliant Unix, Mac OS X and Microsoft Windows;
  27. - Supports 32/64bit architectures as well as non-x86 architectures;
  28. - IPv6 support (optional, must be compiled in);
  29. - OpenSSL support (optional, must be compiled in);
  30. - Cocoa interface by Nathan Ollerenshaw;
  31. - Comprehensive documentation, examples and the FAQ;
  32. Known issues
  33. ~~~~~~~~~~~~
  34. Even though possible by using multiple sessions, the library is not suitable to connect to a large number of IRC servers simultaneously. If you still want to use it, you'd have to overcome the following:
  35. - You cannot use the main loop in :c:func:`irc_run` because it only supports one session. You would have to use :c:func:`irc_add_select_descriptors`
  36. - You'd have to handle reconnections separately by processing the relevant :c:func:`irc_process_select_descriptors` return values
  37. - If you wish to use poll/epoll() instead of select() you'd have to write more logic as it is not directly supported. See the :ref:`FAQ <faq_epoll>`.
  38. - The library is not optimized to have a low per-connection memory footprint, each non-SSL connection uses at least 4K, with around 32K per connection for SSL.
  39. Author
  40. ~~~~~~
  41. This library is created by George Yunaev, copyright 2004-2016. Please see http://www.ulduzsoft.com/linux/libircclient
  42. License
  43. ~~~~~~~
  44. Libircclient is licensed under Lesser General Public License version 3 or higher. The complete license text is provided in the Appendix.