the dilemma of 3 different Pear IRC classes.. solved?
| From: | chip | Date: | Sat, 04 Jan 2003 04:15:04 +0000 |
| Subject: | the dilemma of 3 different Pear IRC classes.. solved? | ||
| Groups: | php.pear.dev | ||
| Request: | Send a blank email to pear-dev+get-12079@lists.php.net to get a copy of this message | ||
This isn't supposed to be a flame at SmartIRC or Yapircl.
I said what I believed to be facts at this time, if I am incorrect about
anything I said, please tell me -- it was not intended.
I hope this mail will also better explain to the wider Pear community why
there are 3 different IRC classes at this time.
All three of us authors got a chance to talk on IRC today.
I have decided on what Net_IRC's Target / Niche will be:
1) Run on standard PHP 4.3+
(no extra extensions - right out of the zip file/make install)
Currently Yapircl and SmartIRC require a non-standard, experimental,
extension to run.(they use socket_*). SmartIRC has the ability to use
fsockopen, but it is by no means good at it(using a looping usleep around it
-- note: this the absolutely worst way todo it in Windows, since it doesn't
have usleep, it will be a nice tight read loop, eating up CPU).
2) Run on all PHP Platforms (FreeBSD, Linux, Windows, etc)
I don't believe either of the other authors has really made this a large
priority. I would like Net_IRC to run completely cross platform, and do it
well. (Windows being the kicker)
3) Native multiple server connections
Both SmartIRC and Yapircl do not support multiple server connections natively
at this time. meebey(SmartIRC author) has said he doesn't support the concept,
and if you want an irc client/bot on more than one server, you should run two
sperate PHP process. Yapircl does support more than one server at a time but
this is done by creating more than one object at a time. There is an example
of this included with Yapircl. However, this solution is more a "hack on" way
todo it. I have tested Net_IRC on my internal IRC server with more than 300
concurrent connections. While the vast majority of users will never need
that, I think the ability to connected to multiple servers, wether it be 2, 3,
10, or 400, is a good feature, and to support it natively without requiring a
"hack on" method is a unique feature that is needed.
Since both Net_IRC and Yapircl are both under the PHP License, I have talked
to gtk(Yapircl author), and I think we will both benifit from some code
sharing. To my knowledge SmartIRC will only be LGPL, which is rather useless
for me and gtk, as we can't use any code from it directly.(and defining if
include() violates the LGPL.. well ill let somone else do that.)
-chip