<spanid="evennia-server-portal-mccp"></span><h1>evennia.server.portal.mccp<aclass="headerlink"href="#module-evennia.server.portal.mccp"title="Permalink to this headline">¶</a></h1>
<p>MCCP - Mud Client Compression Protocol</p>
<p>This implements the MCCP v2 telnet protocol as per
<aclass="reference external"href="http://tintin.sourceforge.net/mccp/">http://tintin.sourceforge.net/mccp/</a>. MCCP allows for the server to
compress data when sending to supporting clients, reducing bandwidth
by 70-90%.. The compression is done using Python’s builtin zlib
library. If the client doesn’t support MCCP, server sends uncompressed
as normal. Note: On modern hardware you are not likely to notice the
effect of MCCP unless you have extremely heavy traffic or sits on a
terribly slow connection.</p>
<p>This protocol is implemented by the telnet protocol importing
mccp_compress and calling it from its write methods.</p>
<dlclass="py function">
<dtid="evennia.server.portal.mccp.mccp_compress">
<codeclass="sig-prename descclassname">evennia.server.portal.mccp.</code><codeclass="sig-name descname">mccp_compress</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">protocol</span></em>, <emclass="sig-param"><spanclass="n">data</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/mccp.html#mccp_compress"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.mccp.mccp_compress"title="Permalink to this definition">¶</a></dt>
<dd><p>Handles zlib compression, if applicable.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>data</strong> (<em>str</em>) – Incoming data to compress.</p>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.mccp.</code><codeclass="sig-name descname">Mccp</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">protocol</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/mccp.html#Mccp"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.mccp.Mccp"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">protocol</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/mccp.html#Mccp.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.mccp.Mccp.__init__"title="Permalink to this definition">¶</a></dt>
<dd><p>initialize MCCP by storing protocol on
ourselves and calling the client to see if
it supports MCCP. Sets callbacks to
start zlib compression in that case.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>protocol</strong> (<em>Protocol</em>) – The active protocol instance.</p>
</dd>
</dl>
</dd></dl>
<dlclass="py method">
<dtid="evennia.server.portal.mccp.Mccp.no_mccp">
<codeclass="sig-name descname">no_mccp</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">option</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/mccp.html#Mccp.no_mccp"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.mccp.Mccp.no_mccp"title="Permalink to this definition">¶</a></dt>
<dd><p>Called if client doesn’t support mccp or chooses to turn it off.</p>
<codeclass="sig-name descname">do_mccp</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">option</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/mccp.html#Mccp.do_mccp"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.mccp.Mccp.do_mccp"title="Permalink to this definition">¶</a></dt>