
Research
Security News
The Landscape of Malicious Open Source Packages: 2025 Mid‑Year Threat Report
A look at the top trends in how threat actors are weaponizing open source packages to deliver malware and persist across the software supply chain.
Consul.io <http://www.consul.io/>
_Read the Docs
_
|Build Status|
.. code:: python
import consul
c = consul.Consul()
# poll a key for updates
index = None
while True:
index, data = c.kv.get('foo', index=index)
print data['Value']
# in another process
c.kv.put('foo', 'bar')
::
pip install python-consul
Note: When using python-consul library in environment with proxy server, setting of http_proxy
, https_proxy
and no_proxy
environment variables can be required for proper functionality.
.. |Build Status| image:: https://img.shields.io/travis/cablehead/python-consul.svg?style=flat-square :target: https://travis-ci.org/cablehead/python-consul .. |Coverage Status| image:: https://img.shields.io/coveralls/cablehead/python-consul.svg?style=flat-square :target: https://coveralls.io/r/cablehead/python-consul?branch=master .. _Read the Docs: https://python-consul.readthedocs.io/
There's a few API endpoints still to go to expose all features available in Consul v0.6.0. If you need an endpoint that's not in the documentation, just open an issue and I'll try and add it straight away.
python-consul is currently maintained by:
Please reach out if you're interested in being a maintainer as well. Otherwise, open a PR or Issue we'll try and respond as quickly as we're able.
Issue Labels
:today!: Some triaging is in progress and this issue should be taken care of in
a couple of hours!
:priority: There's a clear need to address this issue and it's likely a core
contributor will take it on. Opening a PR for these is greatly
appreciated!
:help wanted: This issue makes sense and would be useful. It's unlikely a core
contributor will get to this though, so if you'd like to see it
addressed please open a PR.
:question: The need for the issue isn't clear or needs clarification, so please
follow up. Issues in this state for a few months, without
responses will likely will be closed.
PRs
~~~
Pull requests are very much appreciated! When you create a PR please ensure:
#. All current tests pass, including flake8
#. To add tests for your new features, if reasonable
#. To add docstrings for new api features you add and if needed link to these
docstrings from the sphinx documentation
Releases
~~~~~~~~
.. code:: bash
# release the current version, eg: 0.6.1-dev -> 0.6.1
bumpversion release
# prepare the next patch (z-stream) version, eg: 0.6.1 -> 0.6.2-dev
bumpversion --no-tag patch
# else, prepare the next minor (y-stream) version, eg: 0.6.1 -> 0.7.0-dev
bumpversion --no-tag minor
Change log
==========
1.1.0
-----
* add support for nodemeta to catalog and health end points (thanks
@ibrahimmenem)
* update Check.script to use args, as Consul 1.1 has dropped the script
parameter
1.0.1
-----
* Support for Python 3.4 dropped (sorry)
* Add support for Consul 1.0.0 (thanks @matusvalo!)
* Expose all 400 errors and add tests for common callback handler (thanks @bagerard)
0.7.2
-----
* Add header parameter to http check (thanks @matusvalo)
* Add basic Transaction HTTP API support (thanks @iandyh)
* Fix invalid url error when specifying credentials via host (Issue #167)
0.7.1
-----
* Add a common base client for shared functionality between different HTTP clients (thanks @abn!)
* Fix request quoting issue (thanks @abn)
* Fix installation issue due to aiohttp only being available for Python>=3.4.2 (thanks @abn)
* Added support for current release of aiohttp (thanks @eaterek)
* Improved Tornado example (thanks @chriswue)
* Add and use ACL token in Event.fire (thanks @illenseer)
* Add client side cert support (thanks @brocade-craig)
* Add token params to catalog register (thanks @gregdurham)
* Add support for DeregisterCriticalServiceAfter (thanks @daroot)
* Improve reliability of test suite (thanks @daroot!)
* Update CI: Add py35 and py36 to tests (thanks @Poogles)
0.7.0
-----
Features
~~~~~~~~
* Add Operator endpoint (thanks @bantonj!)
0.6.2
-----
Bug Fix
~~~~~~~
* Tornado backend encoding bug related to None values (thanks @plredmond)
* python-consul doesn't support python 2.6 (thanks @lowzj)
Maintenance
~~~~~~~~~~~
* update max ttl to 86400 to conform to consul (thanks @philloooo)
* Correct error message in ACL create/update (thanks @Crypto89)
Features
~~~~~~~~
* Catalog API should support tokens (thanks @racktear!)
* Allow enable tag override (thanks @shalev67!)
0.6.1
------
Features
~~~~~~~~
* Add the coordinate endpoint and near support on Catalog and Health Checks
(thanks @shalev67!)
* Rework all endpoints to use a common callback handler to help ensure
consistent handling of responses (thanks @shalev67)
* Add Query api support (thanks @shalev67)
* Add token support for the Health endpoints (thanks @morpheu!)
* Force to use UTF-8 encoding for the response with the request's client
(thanks @maxnasonov)
Maintenance
~~~~~~~~~~~
* Migrate readthedocs links from .org to .io (thanks @adamchainz)
0.6.0
------
Features
~~~~~~~~
* Add support for the new TCP and Docker health checks (thanks @abn)
* Add support for join and force-leave (thanks @abn)
* Use standard consul environment variables to override configuration (thanks
@amayausky)
Maintenance
~~~~~~~~~~~
* Test binaries updated to Consul 0.6.4
* Tweaks to fix small updates to Consul's API
0.4.7
------
Features
~~~~~~~~
* Add ACL token support to agent.service.register and agent.check.register
0.4.6
------
Features
~~~~~~~~
* Add health.checks endpoint, update health TODOs (thanks @cruatta!)
* Improve error when a HTTP 503 status code is returned (thanks @raboof!)
* Added index and wait parameter to event.list (thanks @max0d41!)
0.4.5
------
Features
~~~~~~~~
* Allow SSL certificate verification to be disabled (thanks @jgadling!)
* Use requests.session for performance (thanks @msabramo!)
* Support 'wait' param for all blocking queries (thanks @rmt!)
* deduplicate query string when doing deletes with the std (requests) library
(thanks @sduthil!)
0.4.4
------
Features
~~~~~~~~
* Support creation of ALCs with explicit ID. (thanks @KyleJamesWalker)
0.4.3
------
Features
~~~~~~~~
* Support 'dc' argument to health endpoints (thanks @etuttle!)
0.4.2
------
Features
~~~~~~~~
* Add status endpoints (thanks @cruatta!)
0.4.1
------
Features
~~~~~~~~
* Add health.node (thanks @davidbirdsong!)
0.4.0
-----
API changes (backwards incompatible)
Deprecated old health.check.ttl_pass call has been removed
Deprecate loose parameters script, interval, ttl, http and timeout, to configure checks via agent.service.register and agent.check.register. Both methods now take a single argument to specify checks. A convenience consul.Check has been added to create checks.
Features
* Add Node and Service Maintenance (thanks @cruatta!)
Bug Fix
~~~~~~~
* Unclosed connector Exception in consul.aio (thanks @jettify!)
0.3.19
------
Bug Fix
~~~~~~~
* Fix six dependency (thanks @pawlowskimichal!)
0.3.18
------
Features
Bug Fix
* Fix distribution for consul.aio for python3 (thanks @mbachry!)
0.3.17
------
Features
Features
* Add cas param for kv.delete (thanks @qix)
0.3.15
------
Features
Features
* add the keys and separator params to kv.get (thanks @Heuriskein)
* add support for the events api (thanks @Heuriskein!)
0.3.13
------
Features
Features
* add behavior and ttl to session.create
* add session.renew
0.3.11
------
Features
Bug Fix
* Exclude consul.aio if asyncio isn't available, avoids an error message on
install, trying to byte compile that module
0.3.8
-----
API changes (backwards incompatible)
Features
* Add dc support for kv calls; add ability to set the default dc for an entire
client session (thanks @angad)
* Add asyncio client (thanks @jettify)
0.3.6
-----
Features
Bug Fix
* Fix typo setting notes on a check (thanks @ShaheedHaque!)
0.3.4
-----
Features
Deprecated
* health.check.ttl_pass has been moved to agent.check.ttl_pass
0.3.3
-----
Features
~~~~~~~~
* Add support for the Session API (Consul.Session)
Bug Fixes
~~~~~~~~~
* Fix a bug retrieving folder nodes from the KV store
https://github.com/cablehead/python-consul/pull/6#issue-48589128
Thanks @zacman85
0.3.2
-----
Features
~~~~~~~~
* Add support for Python 3.4
0.3.1
-----
Features
~~~~~~~~
* Add support for the Catalog API (Consul.Catalog)
* Add ability to set a default consistency mode for an entire client session
* Add the ability to pass the consistency mode with kv.get
0.3.0
-----
Features
~~~~~~~~
* Add support for ACLs (Consul.ACL)
API changes (backwards incompatible)
FAQs
Python client for Consul (http://www.consul.io/)
We found that python-consul demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 3 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
A look at the top trends in how threat actors are weaponizing open source packages to deliver malware and persist across the software supply chain.
Security News
ESLint now supports HTML linting with 48 new rules, expanding its language plugin system to cover more of the modern web development stack.
Security News
CISA is discontinuing official RSS support for KEV and cybersecurity alerts, shifting updates to email and social media, disrupting automation workflows.