File Coverage

blib/lib/Net/Clacks.pm
Criterion Covered Total %
statement 47 47 100.0
branch n/a
condition n/a
subroutine 16 16 100.0
pod n/a
total 63 63 100.0


line stmt bran cond sub pod time code
1             package Net::Clacks;
2             #---AUTOPRAGMASTART---
3 1     1   130728 use v5.36;
  1         59  
4 1     1   7 use strict;
  1         8  
  1         40  
5 1     1   1078 use diagnostics;
  1         658817  
  1         11  
6 1     1   1163 use mro 'c3';
  1         4  
  1         8  
7 1     1   920 use English qw(-no_match_vars);
  1         3789  
  1         8  
8 1     1   510 use Carp qw[carp croak confess cluck longmess shortmess];
  1         2  
  1         106  
9             our $VERSION = 35;
10 1     1   957 use autodie qw( close );
  1         23364  
  1         7  
11 1     1   1198 use Array::Contains;
  1         3721  
  1         89  
12 1     1   720 use utf8;
  1         308  
  1         10  
13 1     1   688 use Encode qw(is_utf8 encode_utf8 decode_utf8);
  1         17074  
  1         85  
14 1     1   580 use Data::Dumper;
  1         6035  
  1         75  
15 1     1   437 use builtin qw[true false is_bool];
  1         114  
  1         35  
16 1     1   5 no warnings qw(experimental::builtin); ## no critic (TestingAndDebugging::ProhibitNoWarnings)
  1         1  
  1         43  
17             #---AUTOPRAGMAEND---
18              
19 1     1   572 use Net::Clacks::Client;
  1         7  
  1         63  
20 1     1   1093 use Net::Clacks::Server;
  1         7  
  1         84  
21 1     1   880 use Net::Clacks::ClacksCache;
  1         5  
  1         74  
22              
23             1;
24              
25             =head1 NAME
26              
27             Net::Clacks - Fast client/server interprocess messaging and memcached replacement
28              
29             =head1 SYNOPSIS
30              
31             The Net::Clacks system implements a fast client/server based interprocess messaging. For
32             handling a high number of clients, you can run multiple servers in a master/slave configuration.
33             A slave can also run itself as master for it's own slaves, so a tree-like setup is possible.
34              
35             Net::Clacks requires Perl 5.36.0 or higher.
36              
37             =head1 DESCRIPTION
38              
39             The Net::Clacks system implements a fast client/server based interprocess messaging. For
40             handling a high number of clients, you can run multiple servers in a master/slave configuration.
41             A slave can also run itself as master for it's own slaves, so a tree-like setup is possible.
42              
43             Clacks has two ways to handle data. One is (near) real time messaging, the other is storing in
44             memory (as a replacement for memcached).
45              
46             Clacks has also a DEBUG feature that forwards all messages to a requesting client.
47              
48             The Net::Clacks system implements a fast client/server based interprocess messaging. For
49             handling a high number of clients, you can run multiple servers in a master/slave configuration.
50             A slave can also run itself as master for it's own slaves, so a tree-like setup is possible. This
51             is implemented by using Interclacks mode via OVERHEAD mode setting.
52              
53             =head1 MODULES
54              
55             The server is implemented in L.
56              
57             The client library in L.
58              
59             A more Cache::Memcached compatible client library (caching only, no real time communication) is implemented
60             in the L module.
61              
62             For those cases when you need to send a Clacks message from PostgreSQL, there is the "write-only" L.
63             This makes it relatively easy to generate messages from database triggers.
64              
65             Please also take a look at the examples, this implements a simple chat client.
66              
67              
68             =head1 IMPORTANT UPGRADE NOTES
69              
70             Please make sure to read L before upgrading to a new Net::Clacks version.
71              
72             =head1 AUTHOR
73              
74             Rene Schickbauer, Ecavac@cpan.orgE
75              
76             =head1 Source code repository
77              
78             The official source code repository is located at:
79             L
80              
81             =head1 COPYRIGHT AND LICENSE
82              
83             Copyright (C) 2008-2024 Rene Schickbauer
84              
85             This library is free software; you can redistribute it and/or modify
86             it under the same terms as Perl itself, either Perl version 5.10.0 or,
87             at your option, any later version of Perl 5 you may have available.
88              
89             =cut
90