Metadata-Version: 1.1
Name: aioredis
Version: 1.0.0
Summary: asyncio (PEP 3156) Redis support
Home-page: https://github.com/aio-libs/aioredis
Author: Alexey Popravka
Author-email: alexey.popravka@horsedevel.com
License: MIT
Description-Content-Type: UNKNOWN
Description: aioredis
        ========
        
        asyncio (PEP 3156) Redis client library.
        
        .. image:: https://travis-ci.org/aio-libs/aioredis.svg?branch=master
           :target: https://travis-ci.org/aio-libs/aioredis
        
        
        .. image:: https://codecov.io/gh/aio-libs/aioredis/branch/master/graph/badge.svg
           :target: https://codecov.io/gh/aio-libs/aioredis
        
        .. image:: https://ci.appveyor.com/api/projects/status/wngyx6s98o6hsxmt/branch/master?svg=true
           :target: https://ci.appveyor.com/project/popravich/aioredis
        
        Features
        --------
        
        ================================  ==============================
        hiredis_ parser                     Yes
        Pure-python parser                  Yes
        Low-level & High-level APIs         Yes
        Connections Pool                    Yes
        Pipelining support                  Yes
        Pub/Sub support                     Yes
        SSL/TLS support                     Yes
        Sentinel support                    Yes [1]_
        Redis Cluster support               WIP
        Trollius (python 2.7)               No
        Tested CPython versions             `3.5, 3.6 <travis_>`_ [2]_
        Tested PyPy3 versions               `5.9.0 <travis_>`_
        Tested for Redis server             `2.6, 2.8, 3.0, 3.2, 4.0 <travis_>`_
        Support for dev Redis server        through low-level API
        ================================  ==============================
        
        
        .. [1] Sentinel support is available in master branch.
           This feature is not yet stable and may have some issues.
        
        .. [2] For Python 3.3, 3.4 support use aioredis v0.3.
        
        Documentation
        -------------
        
        http://aioredis.readthedocs.io/
        
        Usage examples
        --------------
        
        Simple low-level interface:
        
        .. code:: python
        
            import asyncio
            import aioredis
        
            loop = asyncio.get_event_loop()
        
            async def go():
                conn = await aioredis.create_connection(
                    'redis://localhost', loop=loop)
                await conn.execute('set', 'my-key', 'value')
                val = await conn.execute('get', 'my-key')
                print(val)
                conn.close()
                await conn.wait_closed()
            loop.run_until_complete(go())
            # will print 'value'
        
        Simple high-level interface:
        
        .. code:: python
        
            import asyncio
            import aioredis
        
            loop = asyncio.get_event_loop()
        
            async def go():
                redis = await aioredis.create_redis(
                    'redis://localhost', loop=loop)
                await redis.set('my-key', 'value')
                val = await redis.get('my-key')
                print(val)
                redis.close()
                await redis.wait_closed()
            loop.run_until_complete(go())
            # will print 'value'
        
        Connections pool:
        
        .. code:: python
        
            import asyncio
            import aioredis
        
            loop = asyncio.get_event_loop()
        
            async def go():
                pool = await aioredis.create_pool(
                    'redis://localhost',
                    minsize=5, maxsize=10,
                    loop=loop)
                await pool.execute('set', 'my-key', 'value')
                print(await pool.execute('get', 'my-key'))
                # graceful shutdown
                pool.close()
                await pool.wait_closed()
        
            loop.run_until_complete(go())
        
        
        Requirements
        ------------
        
        * Python_ 3.5.3+
        * hiredis_
        
        .. note::
        
            hiredis is preferred requirement.
            Pure-python protocol parser is implemented as well and can be used
            through ``parser`` parameter.
        
        Benchmarks
        ----------
        
        Benchmarks can be found here: https://github.com/popravich/python-redis-benchmark
        
        Discussion list
        ---------------
        
        *aio-libs* google group: https://groups.google.com/forum/#!forum/aio-libs
        
        Or gitter room: https://gitter.im/aio-libs/Lobby
        
        License
        -------
        
        The aioredis is offered under MIT license.
        
        .. _Python: https://www.python.org
        .. _hiredis: https://pypi.python.org/pypi/hiredis
        .. _travis: https://travis-ci.org/aio-libs/aioredis
        
        Changes
        -------
        
        1.0.0 (2017-11-17)
        ^^^^^^^^^^^^^^^^^^
        
        **NEW**:
        
        * **Important!** Drop Python 3.3, 3.4 support;
          (see `#321 <https://github.com/aio-libs/aioredis/pull/321>`_,
          `#323 <https://github.com/aio-libs/aioredis/pull/323>`_
          and `#326 <https://github.com/aio-libs/aioredis/pull/326>`_);
        
        * **Important!** Connections pool has been refactored; now ``create_redis``
          function will yield ``Redis`` instance instead of ``RedisPool``
          (see `#129 <https://github.com/aio-libs/aioredis/pull/129>`_);
        
        * **Important!** Change sorted set commands reply format:
          return list of tuples instead of plain list for commands
          accepting ``withscores`` argument
          (see `#334 <https://github.com/aio-libs/aioredis/pull/334>`_);
        
        * **Important!** Change ``hscan`` command reply format:
          return list of tuples instead of mixed key-value list
          (see `#335 <https://github.com/aio-libs/aioredis/pull/335>`_);
        
        * Implement Redis URI support as supported ``address`` argument value
          (see `#322 <https://github.com/aio-libs/aioredis/pull/322>`_);
        
        * Dropped ``create_reconnecting_redis``, ``create_redis_pool`` should be
          used instead;
        
        * Implement custom ``StreamReader``
          (see `#273 <https://github.com/aio-libs/aioredis/pull/273>`_);
        
        * Implement Sentinel support
          (see `#181 <https://github.com/aio-libs/aioredis/pull/181>`_);
        
        * Implement pure-python parser
          (see `#212 <https://github.com/aio-libs/aioredis/pull/212>`_);
        
        * Add ``migrate_keys`` command
          (see `#187 <https://github.com/aio-libs/aioredis/pull/187>`_);
        
        * Add ``zrevrangebylex`` command
          (see `#201 <https://github.com/aio-libs/aioredis/pull/201>`_);
        
        * Add ``command``, ``command_count``, ``command_getkeys`` and
          ``command_info`` commands
          (see `#229 <https://github.com/aio-libs/aioredis/pull/229>`_);
        
        * Add ``ping`` support in pubsub connection
          (see `#264 <https://github.com/aio-libs/aioredis/pull/264>`_);
        
        * Add ``exist`` parameter to ``zadd`` command
          (see `#288 <https://github.com/aio-libs/aioredis/pull/288>`_);
        
        * Add ``MaxClientsError`` and implement ``ReplyError`` specialization
          (see `#325 <https://github.com/aio-libs/aioredis/pull/325>`_);
        
        * Add ``encoding`` parameter to sorted set commands
          (see `#289 <https://github.com/aio-libs/aioredis/pull/289>`_);
        
        **FIX**:
        
        * Fix ``CancelledError`` in ``conn._reader_task``
          (see `#301 <https://github.com/aio-libs/aioredis/pull/301>`_);
        
        * Fix pending commands cancellation with ``CancelledError``,
          use explicit exception instead of calling ``cancel()`` method
          (see `#316 <https://github.com/aio-libs/aioredis/pull/316>`_);
        
        * Correct error message on Sentinel discovery of master/slave with password
          (see `#327 <https://github.com/aio-libs/aioredis/pull/327>`_);
        
        * Fix ``bytearray`` support as command argument
          (see `#329 <https://github.com/aio-libs/aioredis/pull/329>`_);
        
        * Fix critical bug in patched asyncio.Lock
          (see `#256 <https://github.com/aio-libs/aioredis/pull/256>`_);
        
        * Fix Multi/Exec transaction canceled error
          (see `#225 <https://github.com/aio-libs/aioredis/pull/225>`_);
        
        * Add missing arguments to ``create_redis`` and ``create_redis_pool``;
        
        * Fix deprecation warning
          (see `#191 <https://github.com/aio-libs/aioredis/pull/191>`_);
        
        * Make correct ``__aiter__()``
          (see `#192 <https://github.com/aio-libs/aioredis/pull/192>`_);
        
        * Backward compatibility fix for ``with (yield from pool) as conn:``
          (see `#205 <https://github.com/aio-libs/aioredis/pull/205>`_);
        
        * Fixed pubsub receiver stop()
          (see `#211 <https://github.com/aio-libs/aioredis/pull/211>`_);
        
        **MISC**:
        
        * Multiple test fixes;
        
        * Add PyPy3 to build matrix;
        
        * Update dependencies versions;
        
        * Add missing Python 3.6 classifier;
        
        
        0.3.5 (2017-11-08)
        ^^^^^^^^^^^^^^^^^^
        
        **FIX**:
        
        * Fix for indistinguishable futures cancellation with
          ``asyncio.CancelledError``
          (see `#316 <https://github.com/aio-libs/aioredis/pull/316>`_),
          cherry-picked from master;
        
        
        0.3.4 (2017-10-25)
        ^^^^^^^^^^^^^^^^^^
        
        **FIX**:
        
        * Fix time command result decoding when using connection-wide encoding setting
          (see `#266 <https://github.com/aio-libs/aioredis/pull/266>`_);
        
        
        0.3.3 (2017-06-30)
        ^^^^^^^^^^^^^^^^^^
        
        **FIX**:
        
        * Critical bug fixed in patched asyncio.Lock
          (see `#256 <https://github.com/aio-libs/aioredis/pull/256>`_);
        
        
        0.3.2 (2017-06-21)
        ^^^^^^^^^^^^^^^^^^
        
        **NEW**:
        
        * Added ``zrevrangebylex`` command
          (see `#201 <https://github.com/aio-libs/aioredis/pull/201>`_),
          cherry-picked from master;
        
        * Add connection timeout
          (see `#221 <https://github.com/aio-libs/aioredis/pull/221>`_),
          cherry-picked from master;
        
        **FIX**:
        
        * Fixed pool close warning
          (see `#239 <https://github.com/aio-libs/aioredis/pull/239>`_
          and `#236 <https://github.com/aio-libs/aioredis/issues/236>`_),
          cherry-picked from master;
        
        * Fixed asyncio Lock deadlock issue
          (see `#231 <https://github.com/aio-libs/aioredis/issues/231>`_
          and `#241 <https://github.com/aio-libs/aioredis/pull/241>`_);
        
        
        0.3.1 (2017-05-09)
        ^^^^^^^^^^^^^^^^^^
        
        **FIX**:
        
        * Fix pubsub Receiver missing iter() method
          (see `#203 <https://github.com/aio-libs/aioredis/issues/203>`_);
        
        
        0.3.0 (2017-01-11)
        ^^^^^^^^^^^^^^^^^^
        
        **NEW**:
        
        * Pub/Sub connection commands accept ``Channel`` instances
          (see `#168 <https://github.com/aio-libs/aioredis/pull/168>`_);
        
        * Implement new Pub/Sub MPSC (multi-producers, single-consumer) Queue --
          ``aioredis.pubsub.Receiver``
          (see `#176 <https://github.com/aio-libs/aioredis/pull/176>`_);
        
        * Add ``aioredis.abc`` module providing abstract base classes
          defining interface for basic lib components;
          (see `#176 <https://github.com/aio-libs/aioredis/pull/176>`_);
        
        * Implement Geo commands support
          (see `#177 <https://github.com/aio-libs/aioredis/pull/177>`_
          and `#179 <https://github.com/aio-libs/aioredis/pull/179>`_);
        
        **FIX**:
        
        * Minor tests fixes;
        
        **MISC**:
        
        * Update examples and docs to use ``async``/``await`` syntax
          also keeping ``yield from`` examples for history
          (see `#173 <https://github.com/aio-libs/aioredis/pull/173>`_);
        
        * Reflow Travis CI configuration; add Python 3.6 section
          (see `#170 <https://github.com/aio-libs/aioredis/pull/170>`_);
        
        * Add AppVeyor integration to run tests on Windows
          (see `#180 <https://github.com/aio-libs/aioredis/pull/180>`_);
        
        * Update multiple development requirements;
Platform: POSIX
Classifier: License :: OSI Approved :: MIT License
Classifier: Development Status :: 4 - Beta
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Operating System :: POSIX
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development
Classifier: Topic :: Software Development :: Libraries
Classifier: Framework :: AsyncIO
