… | |
… | |
131 | </div> |
131 | </div> |
132 | <div class='section section-header'> |
132 | <div class='section section-header'> |
133 | <h1 class="$_[1]">$_[0]</h1> |
133 | <h1 class="$_[1]">$_[0]</h1> |
134 | <div style="text-align: center; float: right; margin-left: 1em; margin-bottom: 1em"> |
134 | <div style="text-align: center; float: right; margin-left: 1em; margin-bottom: 1em"> |
135 | <!-- |
135 | <!-- |
136 | <a title="Mach mit!" href="http://www.piratenpartei.de/navigation/politik/unsere-ziele"> |
136 | <a title="Mach mit!" href="http://www.piratenpartei.de/unsere_ziele"> |
137 | <img src="http://res.tst.eu/denke_selbst.gif" alt="Werde Pirat!" width="468" height="60" border="0" /> |
137 | <img src="http://res.tst.eu/denke_selbst.gif" alt="Werde Pirat!" width="468" height="60" border="0" /> |
138 | </a> |
138 | </a> |
139 | <br /> |
139 | <br /> |
140 | --> |
140 | --> |
141 | <a href="http://www.piratenpartei.de/navigation/politik/unsere-ziele"> |
141 | <a href="http://www.piratenpartei.de/unsere_ziele"> |
142 | <img src="http://res.tst.eu/piraten1.png" alt="Piratenpartei" width="468" height="60" border="0" /> |
142 | <img src="http://res.tst.eu/piraten1.png" alt="Piratenpartei" width="468" height="60" border="0" /> |
143 | </a> |
143 | </a> |
144 | <br /> |
144 | <br /> |
145 | <a href="http://www.deliantra.net/"> |
145 | <a href="http://www.deliantra.net/"> |
146 | <img src="http://www.deliantra.net/images/deliantra.png" border="0" alt="Deliantra Free MMORPG" style="display: inline"/> |
146 | <img src="http://www.deliantra.net/images/deliantra.png" border="0" alt="Deliantra Free MMORPG" style="display: inline"/> |
… | |
… | |
177 | or die "malformed desc in $name: $desc"; |
177 | or die "malformed desc in $name: $desc"; |
178 | |
178 | |
179 | my $short = $1; |
179 | my $short = $1; |
180 | |
180 | |
181 | (my $id = $name) =~ y%/%-%; |
181 | (my $id = $name) =~ y%/%-%; |
182 | $index{$name} = "<tr><th id='$id'><a href='pkg/$name.html'>$name</a></th><td>$short</td></tr>"; |
182 | $index{$name} = "<tr><th id='$id' style='white-space:nowrap'><a href='pkg/$name.html'>$name</a></th><td>$short</td></tr>"; |
183 | |
183 | |
184 | open STDOUT, ">", "software.schmorp.de/pkg/$name.html" |
184 | open STDOUT, ">", "software.schmorp.de/pkg/$name.html" |
185 | or die "software.schmorp.de/pkg/$name.html: $!"; |
185 | or die "software.schmorp.de/pkg/$name.html: $!"; |
186 | |
186 | |
187 | my $bg = (grep /cpan/, @args) ? "bg-perl" : "bg-ede"; |
187 | my $bg = (grep /cpan/, @args) ? "bg-perl" : "bg-ede"; |
… | |
… | |
316 | lists all projects available here.</p> |
316 | lists all projects available here.</p> |
317 | </div> |
317 | </div> |
318 | |
318 | |
319 | <div class='section section-resources'> |
319 | <div class='section section-resources'> |
320 | <table class='resources'> |
320 | <table class='resources'> |
|
|
321 | <tr><td><tt class='icon'>BUGS</tt></td><td class='rr'>Do not use rt.cpan.org to report bugs, use an appropriate mailinglist or mail the author directly.</td></tr> |
321 | <tr><td><tt class='icon'>CVS</tt></td><td class='rr'>All CVS modules can be browsed <a href="http://cvs.schmorp.de/">here</a></td></tr> |
322 | <tr><td><tt class='icon'>CVS</tt></td><td class='rr'>All CVS modules can be browsed <a href="http://cvs.schmorp.de/">here</a></td></tr> |
322 | <tr><td><tt class='icon'>GIT</tt></td><td class='rr'>All GIT repositories can be found <a href="http://git.ta-sa.org/">here</a></td></tr> |
323 | <tr><td><tt class='icon'>GIT</tt></td><td class='rr'>All GIT repositories can be found <a href="http://git.ta-sa.org/">here</a></td></tr> |
323 | <tr><td><tt class='icon'>FILE</tt></td><td class='rr'>Most file releases can be found <a href="http://dist.schmorp.de/">here</a> or on CPAN (for Perl modules)</td></tr> |
324 | <tr><td><tt class='icon'>FILE</tt></td><td class='rr'>Most file releases can be found <a href="http://dist.schmorp.de/">here</a> or on CPAN (for Perl modules)</td></tr> |
324 | <tr><td><tt class='icon'>LIST</tt></td><td class='rr'>All mailinglists can be found <a href="http://lists.schmorp.de/mailman/listinfo">here</a></td></tr> |
325 | <tr><td><tt class='icon'>LIST</tt></td><td class='rr'>All mailinglists can be found <a href="http://lists.schmorp.de/mailman/listinfo">here</a></td></tr> |
325 | <!--<tr><td><tt class='icon'>WIKI</tt></td><td class='rr'>The Wiki can be found <a href="http://wiki.schmorp.de/">here</a></td></tr>--> |
326 | <!--<tr><td><tt class='icon'>WIKI</tt></td><td class='rr'>The Wiki can be found <a href="http://wiki.schmorp.de/">here</a></td></tr>--> |
… | |
… | |
454 | include some highly subjective package selections are available as |
455 | include some highly subjective package selections are available as |
455 | <a href="http://staticperl.schmorp.de/smallperl.html">smallperl</a> |
456 | <a href="http://staticperl.schmorp.de/smallperl.html">smallperl</a> |
456 | and |
457 | and |
457 | <a href="http://staticperl.schmorp.de/bigperl.html">bigperl</a>. |
458 | <a href="http://staticperl.schmorp.de/bigperl.html">bigperl</a>. |
458 | |
459 | |
459 | Net-Knuddels cvs-pod(Net/Knuddels.pm,) |
460 | Net-Knuddels cvs-pod(Net/Knuddels.pm,) |
460 | This perl module provides an API for group communications using the |
461 | This perl module provides an API for group communications using the |
461 | <a href="http://www.knuddels.de/">www.knuddels.de</a> protocol. It is outdated |
462 | <a href="http://www.knuddels.de/">www.knuddels.de</a> protocol. It is outdated |
462 | and only provided as reference. |
463 | and only provided as reference. |
463 | |
464 | |
464 | This module implements the knuddels.de chat protocol. Since it was created |
465 | This module implements the knuddels.de chat protocol. Since it was created |
… | |
… | |
473 | AnyEvent-IRC cpan-elmex git-pod(lib/AnyEvent/IRC.pm,) git-co(Changes) git-co(samples/anyeventirccl) git-co(samples/anyeventirc) list(anyevent) irc(anyevent) |
474 | AnyEvent-IRC cpan-elmex git-pod(lib/AnyEvent/IRC.pm,) git-co(Changes) git-co(samples/anyeventirccl) git-co(samples/anyeventirc) list(anyevent) irc(anyevent) |
474 | This module provides an alternative to the Net-IRC and Net-IRC2 |
475 | This module provides an alternative to the Net-IRC and Net-IRC2 |
475 | modules. Its design rationale is offering a 100% non-blocking |
476 | modules. Its design rationale is offering a 100% non-blocking |
476 | callback-based interface, RFC-compliant parsing and a lightweight |
477 | callback-based interface, RFC-compliant parsing and a lightweight |
477 | approach to modularity and reusability. |
478 | approach to modularity and reusability. |
|
|
479 | |
|
|
480 | AnyEvent-ReadLine-Gnu cpan cvs-pod(Gnu.pm,) list(anyevent) irc(anyevent) |
|
|
481 | This is a small interface to Term::ReadLine::Gnu for event-based programs. |
|
|
482 | |
|
|
483 | This module has event-based readline, as well as asynchronous message printing |
|
|
484 | with readline figured out for you. |
|
|
485 | |
|
|
486 | IO-FDPass cpan cvs-pod(FDPass.pm,) cvs-co(Changes) |
|
|
487 | Pass a file descriptor over a socket. |
|
|
488 | |
|
|
489 | This small low-level module only has one purpose: pass a file descriptor |
|
|
490 | to another process, using a (streaming) unix domain socket (on POSIX |
|
|
491 | systems) or any (streaming) socket (on WIN32 systems). |
|
|
492 | |
|
|
493 | Proc-FastSpawn cpan cvs-pod(FastSpawn.pm,) cvs-co(Changes) |
|
|
494 | fork+exec, or spawn, a subprocess as quickly as possible |
|
|
495 | |
|
|
496 | The purpose of this small (in scope and footprint) module is simple: |
|
|
497 | spawn a subprocess asynchronously as efficiently and/or fast as |
|
|
498 | possible. Basically the same as calling fork+exec (on POSIX), but |
|
|
499 | hopefully faster than those two syscalls. |
|
|
500 | |
|
|
501 | Apart from fork overhead, this module also allows you to fork+exec |
|
|
502 | programs when otherwise you couldn't - for example, when you use POSIX |
|
|
503 | threads in your perl process then it generally isn't safe to call |
|
|
504 | fork from perl, but it is safe to use this module to execute external |
|
|
505 | processes. |
|
|
506 | |
|
|
507 | AnyEvent-Fork cpan cvs-pod(Fork.pm,) cvs-pod(Fork/Early.pm) cvs-pod(Fork/Template) cvs-co(Changes) |
|
|
508 | Everything you wanted to use fork() for, but couldn't. |
|
|
509 | |
|
|
510 | This module allows you to create new processes, without actually forking |
|
|
511 | them from your current process (avoiding the problems of forking), but |
|
|
512 | preserving most of the advantages of fork. |
|
|
513 | |
|
|
514 | It can be used to create new worker processes or new independent |
|
|
515 | subprocesses for short- and long-running jobs, process pools (e.g. for |
|
|
516 | use in pre-forked servers) but also to spawn new external processes (such |
|
|
517 | as CGI scripts from a webserver), which can be faster (and more well |
|
|
518 | behaved) than using fork+exec in big processes. |
478 | |
519 | |
479 | Guard cpan cvs-pod(Guard.pm,) cvs-co(Changes) |
520 | Guard cpan cvs-pod(Guard.pm,) cvs-co(Changes) |
480 | This small module implements scope and object guards, that is, code blocks |
521 | This small module implements scope and object guards, that is, code blocks |
481 | that are executed when a scope is being exited (or an object is destroyed). |
522 | that are executed when a scope is being exited (or an object is destroyed). |
482 | |
523 | |
… | |
… | |
613 | See <a href="http://home.schmorp.de/marc/lmainit.html">its homepage</a> for more info. |
654 | See <a href="http://home.schmorp.de/marc/lmainit.html">its homepage</a> for more info. |
614 | |
655 | |
615 | Algorithm-FEC cpan cvs-pod(FEC.pm,) cvs-co(README.fec) cvs-co(Changes) |
656 | Algorithm-FEC cpan cvs-pod(FEC.pm,) cvs-co(README.fec) cvs-co(Changes) |
616 | Perl module implementing forward error correction using Vandermonde matrices |
657 | Perl module implementing forward error correction using Vandermonde matrices |
617 | |
658 | |
618 | AnyEvent cpan cvs-pod(lib/AnyEvent.pm,) cvs-pod(lib/AnyEvent/Intro.pod,Introduction/Tutorial) cvs-pod(lib/AE.pm,AE) cvs-co(Changes) cvs-pod(lib/AnyEvent/Util.pm,AnyEvent::Util) cvs-pod(lib/AnyEvent/Handle.pm,AnyEvent::Handle) cvs-pod(lib/AnyEvent/Socket.pm,AnyEvent::Socket) cvs-pod(lib/AnyEvent/DNS.pm,AnyEvent::DNS) cvs-pod(lib/AnyEvent/Impl/EV.pm,AnyEvent::Impl::EV) cvs-pod(lib/AnyEvent/Impl/Event.pm,AnyEvent::Impl::Event) cvs-pod(lib/AnyEvent/Impl/Glib.pm,AnyEvent::Impl::Glib) cvs-pod(lib/AnyEvent/Impl/Tk.pm,AnyEvent::Impl::Tk) cvs-pod(lib/AnyEvent/Impl/Perl.pm,AnyEvent::Impl::Perl) cvs-pod(lib/AnyEvent/Impl/Qt.pm,AnyEvent::Impl::Qt) cvs-pod(lib/AnyEvent/Impl/EventLib.pm,AnyEvent::Impl::EventLib) cvs-pod(lib/AnyEvent/Impl/Irssi.pm,AnyEvent::Impl::Irssi) cvs-pod(lib/AnyEvent/Impl/IOAsync.pm,AnyEvent::Impl::IOAsync) cvs-pod(lib/AnyEvent/Impl/POE.pm,AnyEvent::Impl::POE) list(anyevent) irc(anyevent) |
659 | AnyEvent cpan cvs-pod(lib/AnyEvent.pm,) cvs-pod(lib/AnyEvent/Intro.pod,Introduction/Tutorial) cvs-pod(lib/AE.pm,AE) cvs-co(Changes) cvs-pod(lib/AnyEvent/IO.pm,AnyEvent::IO) cvs-pod(lib/AnyEvent/Util.pm,AnyEvent::Util) cvs-pod(lib/AnyEvent/Handle.pm,AnyEvent::Handle) cvs-pod(lib/AnyEvent/Socket.pm,AnyEvent::Socket) cvs-pod(lib/AnyEvent/DNS.pm,AnyEvent::DNS) cvs-pod(lib/AnyEvent/Impl/EV.pm,AnyEvent::Impl::EV) cvs-pod(lib/AnyEvent/Impl/Event.pm,AnyEvent::Impl::Event) cvs-pod(lib/AnyEvent/Impl/Glib.pm,AnyEvent::Impl::Glib) cvs-pod(lib/AnyEvent/Impl/Tk.pm,AnyEvent::Impl::Tk) cvs-pod(lib/AnyEvent/Impl/Perl.pm,AnyEvent::Impl::Perl) cvs-pod(lib/AnyEvent/Impl/Qt.pm,AnyEvent::Impl::Qt) cvs-pod(lib/AnyEvent/Impl/EventLib.pm,AnyEvent::Impl::EventLib) cvs-pod(lib/AnyEvent/Impl/Irssi.pm,AnyEvent::Impl::Irssi) cvs-pod(lib/AnyEvent/Impl/IOAsync.pm,AnyEvent::Impl::IOAsync) cvs-pod(lib/AnyEvent/Impl/POE.pm,AnyEvent::Impl::POE) list(anyevent) irc(anyevent) |
619 | This module offers a simple API for I/O, timer, signal, child process |
660 | This module offers a simple API for I/O, timer, signal, child process |
620 | and completion events, independent of a specific event loop. |
661 | and completion events, independent of a specific event loop. |
621 | |
662 | |
622 | <p>This module allows module authors to use those events internally |
663 | <p>This module allows module authors to use those events internally |
623 | without forcing users of the module to use a specific event loop, without |
664 | without forcing users of the module to use a specific event loop, without |
… | |
… | |
712 | The caller is responsible for authentication management, cookies (if |
753 | The caller is responsible for authentication management, cookies (if |
713 | the simplistic implementation in this module doesn't suffice), referer |
754 | the simplistic implementation in this module doesn't suffice), referer |
714 | and other high-level protocol details for which this module offers only |
755 | and other high-level protocol details for which this module offers only |
715 | limited support. |
756 | limited support. |
716 | |
757 | |
717 | AnyEvent-MP cpan cvs-pod(MP.pm,) cvs-pod(MP/Intro.pod,Introduction/Tutorial) cvs-co(Changes) list(anyevent) irc(anyevent) |
758 | AnyEvent-MP cpan cvs-pod(MP.pm,) cvs-pod(MP/Intro.pod,Introduction/Tutorial) cvs-pod(bin/aemp,Config-Uility) cvs-pod(MP/Kernel.pm) cvs-pod(MP/Global.pm) cvs-pod(MP/Transport.pm) cvs-pod(MP/DataConn.pm) cvs-pod(MP/LogCatcher.pm) cvs-co(Changes) list(anyevent) irc(anyevent) |
718 | This Perl module (-family) implements a simple message passing framework for Perl. |
759 | This Perl module (-family) implements a simple message passing framework for Perl. |
719 | |
760 | |
720 | Despite its simplicity, you can securely message other processes running |
761 | Despite its simplicity, you can securely message other processes running |
721 | on the same or other hosts. |
762 | on the same or other hosts. |
722 | |
763 | |
… | |
… | |
859 | An adaptor that integrates the Net-SNMP Perl module into the EV event loop. |
900 | An adaptor that integrates the Net-SNMP Perl module into the EV event loop. |
860 | Loading it suffices to make background requests in EV programs. |
901 | Loading it suffices to make background requests in EV programs. |
861 | |
902 | |
862 | libev cvs-co(README) cvs-pod(ev.pod) dist list(libev) |
903 | libev cvs-co(README) cvs-pod(ev.pod) dist list(libev) |
863 | A full-featured and high-performance (<a |
904 | A full-featured and high-performance (<a |
864 | href="http://libev.schmorp.de/bench.html">see benchmark</a>) event loop that |
905 | href="http://libev.schmorp.de/bench.html">see benchmark</a>) |
865 | is loosely modelled after libevent, but without its limitations and bugs. It is |
906 | event loop that is loosely modelled after libevent, but without |
|
|
907 | its limitations and bugs. It is used in |
866 | used, among others, in the <a href="/pkg/gvpe.html">GNU Virtual Private Ethernet</a> and |
908 | <a href="/pkg/gvpe.html">GNU Virtual Private Ethernet</a>, |
867 | <a href="/pkg/rxvt-unicode.html">rxvt-unicode</a> packages, and in |
909 | <a href="/pkg/rxvt-unicode.html">rxvt-unicode</a>, <a |
868 | the Deliantra MORPG Server and Client. |
910 | href="http://people.redhat.com/sgrubb/audit/">auditd</a>, the |
|
|
911 | <a href="http://www.deliantra.net">Deliantra MORPG</a> Server and Client, |
|
|
912 | and many other programs. |
869 | |
913 | |
870 | Features include child/pid watchers, periodic timers based on wallclock |
914 | Features include child/pid watchers, periodic timers based on wallclock |
871 | (absolute) time (in addition to timers using relative timeouts), as well |
915 | (absolute) time (in addition to timers using relative timeouts), as well |
872 | as epoll/kqueue/event ports/inotify/eventfd/signalfd support, fast timer |
916 | as epoll/kqueue/event ports/inotify/eventfd/signalfd support, fast timer |
873 | management, time jump detection and correction, and ease-of-use. |
917 | management, time jump detection and correction, and ease-of-use. |