Metadata-Version: 1.0
Name: pybloomd
Version: 0.4.5
Summary: Client library to interface with multiple bloomd servers
Home-page: https://github.com/kiip/bloom-python-driver/
Author: Armon Dadgar
Author-email: biz@kiip.me
License: MIT License
Description: bloom-python-driver
        =========
        
        Pybloom provides a Python client library to interface with
        bloomd servers. The library supports multiple bloomd servers,
        and automatically handles filter discovery and sharding.
        
        Features
        --------
        
        
        * Provides a simple API for using bloomd
        * Allows for using multiple bloomd servers
           - Auto-discovers filter locations
           - Balance the creation of new filters
           - Explicitly name the location to make filters
        * Command pipelining to reduce latency
        
        
        Install
        -------
        
        Download and install from source:
        
            python setup.py install
        
        Example
        ------
        
        Using pybloom is very simple, and is similar to using native sets::
        
            from pybloom import BloomdClient
        
            # Create a client to a local bloomd server, default port
            client = BloomdClient(["localhost"])
        
            # Get or create the foobar filter
            foobar = client.create_filter("foobar")
        
            # Set a property and check it exists
            foobar.add("Test Key!")
            assert "Test Key!" in foobar
        
        To support multiple servers, just add multiple servers::
        
            from pybloom import BloomdClient
        
            # Create a client to a multiple bloomd servers, default ports
            client = BloomdClient(["bloomd1", "bloomd2"])
        
            # Create 4 filters, should be on different machines
            for x in xrange(4):
                client.create_filter("test%d" % x)
        
            # Show which servers the filters are on by
            # specifying the inc_server flag
            print client.list_filters(inc_server=True)
        
            # Use the filters
            client["test0"].add("Hi there!")
            client["test1"].add("ZING!")
            client["test2"].add("Chuck Testa!")
            client["test3"].add("Not cool, bro.")
        
        
        Using pipelining is straightforward as well::
        
            from pybloom import BloomdClient
        
            # Create a client to a local bloomd server, default port
            client = BloomdClient(["localhost"])
        
            # Get or create the foobar filter
            pipe = client.create_filter("pipe").pipeline()
        
            # Chain multiple add commands
            results = pipe.add("foo").add("bar").add("baz").execute()
            assert results[0]
            assert results[1]
            assert results[2]
        
        
        
Keywords: bloom,filter,client,bloomd
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: POSIX
Classifier: Programming Language :: Python
Classifier: Topic :: Database
Classifier: Topic :: Internet
Classifier: Topic :: Software Development :: Libraries
