|
|
| Author |
Message |
xtothez none

Joined: 19 Dec 2005 Posts: 11
|
Posted: Dec 19, 2005 10:57pm Post subject: New IRC Services: Plex |
|
|
Plex is a brand new IRC services package, designed to be as expandable as possible, allowing network admins more flexbility to provide services to their clients.
- Entirely open source - Plex is written in the C++ language, and all parts of the finished source code will be available for public inspection, modifcation and improvement.
- Protocol-independant - Plex uses a seperate Protocol layer to communicate with its IRC network. This can be chosen during installation, allowing Plex to connect seamlessly to any IRC daemon. Network details such as supported channel modes are detected on connection. The first release will contain Protocol code for all major server types, including Unreal, ircu/P10, UltimateIRCd and Bahamut. An API will be provided allowing coders to develop their own Protocols to support custom IRC networks, along with an the ExtendedFeature option allowing use of network-dependant functions such as SVSJOIN and SVSNICK.
- Add-on modules - Plex is designed in a simlar manner to GNUWorld ircu services - a core program handling communication between the IRC network and add-on modules via an API. Modules can be loaded and unloaded at runtime allowing for development without rebooting main services. An event-queue system generates events modules can listen for, such as new clients connecting, channel mode changes, or even events sent from other modules. Also available are functions allowing modules to listen for messages sent to services clients, with a priority-based queue that lets several modules listen on a single client. Timers can be added to run user-defined functions at regular intervals. Finally, modules can assign their own custom data to any network entity (clients, channels, servers, ...).
- Detailed logging - IRC Admins have full control over how much debugging and security information the services record. If you want to keep track of every action on your network, this option is for you. Log messages can be picked up by custom modules for output to a channel or recording to a database.
- Data Abstraction Layer - Plex will include a customised data abstraction library which can be included in any module, providing a layer of control as to how information is stored. Code for common relational databases (such as MySQL and Postgres) will be supplied, and developers are encouraged to provide their own implementations to increase this list.
- PlexServices Module - The first module release will be the actual IRC services, providing all the standard features of username, channel and network management. This can be configured to run as NickServ, ChanServ and OperServ-style clients, or as a CService-style single client such as X. PlexServices will use the Data Abstraction Layer for storage, allowing access to its information from external sources such as websites. A timer function will be provided to allow external updates (such as access level changes or new username registrations). PlexServices will also include the following features:
- Group management system - This allows many users to share access to a set of channels, for ease of use when controlling access. A user may be added or removed from several channels with a single command simply by adding or removing them from a group. The final release version of PlexServices will include sample scripts demonstrating how to synchronise groups automatically with third-party software, such as a forum or private website.
- Admin Permissions - A unique permission system provides fine-grained control over what services admins can do and see. Seperate flags for create,view, edit and delete can be set on all registered entities (usernames, channels, groups). PlexServices will also allow network admins to log what permissions are used and by who, helping to limit potential abuse.
- Automatic 'perform' list - Plex NickServ allows you to save your own 'perform' list inside services, automatically inviting you to all needed channels and setting automatic modes. These settings are preserved and applied not matter where you login from, so there's no need to memorise a list of essential channels.
- Customisable Help - All services command information will be stored in the database, making it easier for IRC admins to edit command access levels, change help text to alternate languages, and other such features. Services will also include a 'search help' function, allowing users to track down needed commands using keywords.
- Redundant backup system - Although it does require IRC daemon modifcation to be fully effective, this unique feature allows multiple instances of Plex to operate on a single IRC network, ensuring maximum services uptime and accessibility should primary services become inaccessible. Core services data is synchronised between multiple sources, and changes can be returned to the primary instance of PlexServices.
Right now Plex is in an alpha stage of development, with most core features complete (Protocol and Module APIs), but insufficiently tested. I'm currently testing the protocol API with various IRC daemons, and will be ready to start on the Data Abstraction Layer and PlexServices module early in the new year. Before continuing however, I would like some feedback from the IRC development community regarding the above features and what is missing or could be improved. Please post any comments below.
If you are interested in contributing to the development of this new project, feel free to contact me at xtothez@elysiumhq.com or on irc.netgamers.org in #elysium. |
|
| Back to top |
|
 |
trystan Eleet

Joined: 15 Jun 2005 Posts: 756 Location: SLC Utah
|
Posted: Dec 19, 2005 11:36pm Post subject: |
|
|
| Confusing name at first.. started to think it was related to PlexusIRCD |
|
| Back to top |
|
 |
MOVIEBOT Lurker

Joined: 24 May 2004 Posts: 229 Location: Poland
|
Posted: Dec 20, 2005 12:05am Post subject: |
|
|
| dont understand why they keep try and make new services when Anope is the best |
|
| Back to top |
|
 |
trystan Eleet

Joined: 15 Jun 2005 Posts: 756 Location: SLC Utah
|
Posted: Dec 20, 2005 12:18am Post subject: |
|
|
| blah.. debatable subject and lets not start this in this thread |
|
| Back to top |
|
 |
nenolod Idler

Joined: 23 Jan 2004 Posts: 332 Location: A box!
|
Posted: Dec 20, 2005 12:36am Post subject: |
|
|
| MOVIEBOT wrote: | | dont understand why they keep try and make new services when Anope is the best |
Anope is not "best". Different services packages serve people with different interests. Please do not make such blanket statements. |
|
| Back to top |
|
 |
Aven Idler

Joined: 05 Aug 2005 Posts: 393
|
Posted: Dec 20, 2005 12:38am Post subject: |
|
|
| nenolod wrote: | | MOVIEBOT wrote: | | dont understand why they keep try and make new services when Anope is the best |
Anope is not "best". Different services packages serve people with different interests. Please do not make such blanket statements. |
Agreed...
"Anope is the most prefered irc services" would be valid ;P |
|
| Back to top |
|
 |
PingBad Guru

Joined: 05 Feb 2005 Posts: 2007 Location: New Zealand
|
Posted: Dec 20, 2005 4:13am Post subject: |
|
|
| Another flavor in the lollipop stand... good luck with your project, keep us posted and, well, yeah (the NickServ Perform bit looks very interesting) |
|
| Back to top |
|
 |
braindigitalis Idler

Joined: 22 Sep 2003 Posts: 443 Location: IRC
|
Posted: Dec 20, 2005 4:52am Post subject: |
|
|
| When it gets to the point where protocol modules can be written, get in touch with me so that InspIRCd support can be added. |
|
| Back to top |
|
 |
GeniusDex Lurker

Joined: 16 Aug 2003 Posts: 150
|
Posted: Dec 20, 2005 8:20am Post subject: |
|
|
| PingBad wrote: | | Another flavor in the lollipop stand... good luck with your project, keep us posted and, well, yeah (the NickServ Perform bit looks very interesting) |
It looks like a regular /nickserv ajoin to me, so that's nothing special really. |
|
| Back to top |
|
 |
trystan Eleet

Joined: 15 Jun 2005 Posts: 756 Location: SLC Utah
|
Posted: Dec 20, 2005 9:08am Post subject: |
|
|
| guys.. guys.. this is NOT the place to debate this.. start a new thread and lets this guy have his chance to showcase his work, not us debating whom is better |
|
| Back to top |
|
 |
nenolod Idler

Joined: 23 Jan 2004 Posts: 332 Location: A box!
|
Posted: Dec 20, 2005 12:13pm Post subject: |
|
|
| seconded @ Trystan |
|
| Back to top |
|
 |
FBI Guru

Joined: 19 Aug 2005 Posts: 1494 Location: Federation Of Bored IRC'ers
|
Posted: Dec 20, 2005 1:34pm Post subject: |
|
|
nice services I like the logging thing so i can view some and instead of relying on withness the network owner can acutally see who glined who and all those other stuff...
keep up the great work!  |
|
| Back to top |
|
 |
xtothez none

Joined: 19 Dec 2005 Posts: 11
|
Posted: Dec 20, 2005 5:07pm Post subject: |
|
|
Thanks to Brain for pointing me in the direction of Doxygen. Documentation is now available for the existing code at:
http://www.pilkara.com/xto/plexdocs/
I'm surprised at the positive response so far, didn't think these forums were this active :) Thank you all for your comments and suggestions via IRC.
| trystan wrote: | | Confusing name at first.. started to think it was related to PlexusIRCD |
The name comes from a PHP bot written several years ago to allow Elysium IRC users to login to IRC via their Vbulletin forum accounts. We've gone through several private versions of Plex services since, but now it's time to make one for public use.
| MOVIEBOT wrote: | | dont understand why they keep try and make new services when Anope is the best |
Ironically, the reason Plex was started was due the lack of SQL support in Epona/Anope (at the time), along with the nick grouping 'feature' that lets people effectively duplicate nicknames should the account password be compromised. We moved away from Anope and onto custom services due to the higher security concerns on our private network. |
|
| Back to top |
|
 |
xtothez none

Joined: 19 Dec 2005 Posts: 11
|
Posted: Jun 03, 2006 9:39pm Post subject: |
|
|
I know it's been a while since the initial post, but now I'm finished uni I can focus on more Plex development.
The software is in very much an alpha state now, and I'm adding functionality to make it useable on a live network. There are three main components to Plex:
Core - Handles interface with the IRC network and controls add-on modules (in the same manner as GNUWorld's main component). Virtually complete except for gline support.
Protocol Support - This week I've been working on a 'P10 protocol component' to allow Plex to be used in ircu-based networks.
The completed 'generic protocol' component allows use with several versions of Unreal IRCd and UltimateIRCd 2.8.x.
Further development of protocol support will be persued once other components are sufficiently developed and tested.
Services Module - Currently contains approximately 80% of its intended features, including logging, MySQL support via the D.A.L, group management, admin permissions and help. Needs an assortment of commands, mostly administrative ones for channel/group management, and vhost support.
This component is in desperate need of testing before being used in a live network.
If you have any comments and/or suggestions you'd like to make regarding this software, feel free to post them here. Also, if you would like to test Plex first-hand, drop by irc.elysiumhq.com #plex and highlight me. Any help with testing or user feedback would be eagerly recieved. |
|
| Back to top |
|
 |
w00t Eleet

Joined: 09 Jun 2004 Posts: 699 Location: Nowra, Australia
|
Posted: Jun 07, 2006 9:53pm Post subject: |
|
|
Is there any chance of an actual code/SVN release in some form? I would like to take a look over, and possibly offer some help (who knows) - but I'm simply too lazy to do any of that.
If not, may be something you'd want to consider. |
|
| Back to top |
|
 |
|