… | |
… | |
136 | <a title="Mach mit!" href="http://www.piratenpartei.de/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.http://www.piratenpartei.de/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.pm) cvs-co(Changes) list(anyevent) irc(anyevent) |
|
|
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. |
|
|
519 | |
|
|
520 | AnyEvent::Fork::Remote cpan cvs-pod(Remote.pm,) cvs-co(Changes) list(anyevent) irc(anyevent) |
|
|
521 | remote processes with AnyEvent::Fork interface |
|
|
522 | |
|
|
523 | Despite what the name of this module might suggest, it doesn't actually |
|
|
524 | create remote processes for you. But it does make it easy to use them, |
|
|
525 | once you have started them. |
|
|
526 | |
|
|
527 | This module implements a very similar API as AnyEvent::Fork. In fact, |
|
|
528 | similar enough to require at most minor modifications to support both |
|
|
529 | at the same time. For example, it works with AnyEvent::Fork::RPC and |
|
|
530 | AnyEvent::Fork::Pool. |
|
|
531 | |
|
|
532 | AnyEvent-Fork-RPC cpan cvs-pod(RPC.pm,) cvs-co(Changes) list(anyevent) irc(anyevent) |
|
|
533 | Simple RPC extension for AnyEvent::Fork |
|
|
534 | |
|
|
535 | This module implements a simple RPC protocol and backend for processes |
|
|
536 | created via AnyEvent::Fork, allowing you to call a function in the |
|
|
537 | child process and receive its return values (up to 4GB serialised). |
|
|
538 | |
|
|
539 | It implements two different backends: a synchronous one that works like a |
|
|
540 | normal function call, and an asynchronous one that can run multiple jobs |
|
|
541 | concurrently in the child, using AnyEvent. |
|
|
542 | |
|
|
543 | It also implements an asynchronous event mechanism from the child to the |
|
|
544 | parent, that could be used for progress indications or other information. |
|
|
545 | |
|
|
546 | AnyEvent-Fork-Pool cpan cvs-pod(Pool.pm,) cvs-co(Changes) list(anyevent) irc(anyevent) |
|
|
547 | Simple process pool manager on top of AnyEvent::Fork and AnyEvent::Fork::RPC. |
|
|
548 | |
|
|
549 | This module uses processes created via AnyEvent::Fork and the RPC |
|
|
550 | protocol implement in AnyEvent::Fork::RPC to create a load-balanced pool |
|
|
551 | of processes that handles jobs. |
|
|
552 | |
|
|
553 | Understanding of AnyEvent::Fork is helpful but not critical to be able |
|
|
554 | to use this module, but a thorough understanding of AnyEvent::Fork::RPC |
|
|
555 | is, as it defines the actual API that needs to be implemented in the |
|
|
556 | children. |
478 | |
557 | |
479 | Guard cpan cvs-pod(Guard.pm,) cvs-co(Changes) |
558 | Guard cpan cvs-pod(Guard.pm,) cvs-co(Changes) |
480 | This small module implements scope and object guards, that is, code blocks |
559 | 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). |
560 | that are executed when a scope is being exited (or an object is destroyed). |
482 | |
561 | |
… | |
… | |
865 | event loop that is loosely modelled after libevent, but without |
944 | event loop that is loosely modelled after libevent, but without |
866 | its limitations and bugs. It is used in |
945 | its limitations and bugs. It is used in |
867 | <a href="/pkg/gvpe.html">GNU Virtual Private Ethernet</a>, |
946 | <a href="/pkg/gvpe.html">GNU Virtual Private Ethernet</a>, |
868 | <a href="/pkg/rxvt-unicode.html">rxvt-unicode</a>, <a |
947 | <a href="/pkg/rxvt-unicode.html">rxvt-unicode</a>, <a |
869 | href="http://people.redhat.com/sgrubb/audit/">auditd</a>, the |
948 | href="http://people.redhat.com/sgrubb/audit/">auditd</a>, the |
870 | <a href="http://www.deliantra.,net">Deliantra MORPG</a> Server and Client, |
949 | <a href="http://www.deliantra.net">Deliantra MORPG</a> Server and Client, |
871 | and many other programs. |
950 | and many other programs. |
872 | |
951 | |
873 | Features include child/pid watchers, periodic timers based on wallclock |
952 | Features include child/pid watchers, periodic timers based on wallclock |
874 | (absolute) time (in addition to timers using relative timeouts), as well |
953 | (absolute) time (in addition to timers using relative timeouts), as well |
875 | as epoll/kqueue/event ports/inotify/eventfd/signalfd support, fast timer |
954 | as epoll/kqueue/event ports/inotify/eventfd/signalfd support, fast timer |