Skip to content

Commit 9e79ebe

Browse files
author
Pan
committed
Update readme.
1 parent 07fe599 commit 9e79ebe

File tree

2 files changed

+12
-11
lines changed

2 files changed

+12
-11
lines changed

.travis.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ script:
3030
# Test building from source distribution
3131
- python setup.py sdist
3232
- cd dist; pip install *; cd ..
33+
- python setup.py check --restructuredtext
3334
after_success:
3435
- codecov
3536
jobs:

README.rst

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -226,33 +226,33 @@ There are not many alternatives for SSH libraries in Python. Of the few that do
226226

227227
As always, it is best to use a tool that is suited to the task at hand. ``parallel-ssh`` is a library for programmatic and non-interactive use - see `Design And Goals`_. If requirements do not match what it provides then it best not be used. Same applies for the tools described below.
228228

229-
`Paramiko <http://paramiko.org>`_
230-
_____________________________________
229+
Paramiko
230+
________
231231

232232
The default SSH client library in ``parallel-ssh`` ``1.x.x`` series.
233233

234234
Pure Python code, while having native extensions as dependencies, with poor performance and numerous bugs compared to both OpenSSH binaries and the ``libssh2`` based native clients in ``parallel-ssh`` ``1.2.x`` and above. Recent versions have regressed in performance and have `blocker issues <https://github.com/ParallelSSH/parallel-ssh/issues/83>`_.
235235

236236
It does not support non-blocking mode, so to make it non-blocking monkey patching must be used which affects all other uses of the Python standard library. However, some functionality like Kerberos (GSS-API) authentication is not provided by other libraries.
237237

238-
`asyncssh <https://github.com/ronf/asyncssh>`_
239-
_________________________________________________
238+
asyncssh
239+
________
240240

241241
Python 3 only ``asyncio`` framework using client library. License (`EPL`) is not compatible with GPL, BSD or other open source licenses and `combined works cannot be distributed <https://www.eclipse.org/legal/eplfaq.php#USEINANOTHER>`_.
242242

243243
Therefore unsuitable for use in many projects, including ``parallel-ssh``.
244244

245-
`Fabric <http://www.fabfile.org/>`_
246-
___________________________________
245+
Fabric
246+
______
247247

248248
Port of Capistrano from Ruby to Python. Intended for command line use and is heavily systems administration oriented rather than non-interactive library. Same maintainer as Paramiko.
249249

250250
Uses Paramiko and suffers from the same limitations. More over, uses threads for parallelisation, while `not being thread safe <https://github.com/fabric/fabric/issues/1433>`_, and exhibits very poor performance and extremely high CPU usage even for limited number of hosts - 1 to 10 - with scaling limited to one core.
251251

252252
Library API is non-standard, poorly documented and with numerous issues as API use is not intended.
253253

254-
`Ansible <https://www.ansible.com/>`_
255-
_________________________________________
254+
Ansible
255+
_______
256256

257257
A configuration management and automation tool that makes use of SSH remote commands. Uses, in parts, both Paramiko and OpenSSH binaries.
258258

@@ -264,8 +264,8 @@ Again similar to Fabric, its intended and documented use is interactive via comm
264264

265265
``parallel-ssh`` is, on the other hand, a suitable option for Ansible as an SSH client that would improve its parallel SSH performance significantly.
266266

267-
`ssh2-python <https://github.com/ParallelSSH/ssh2-python>`_
268-
_____________________________________________________________
267+
ssh2-python
268+
___________
269269

270270
Wrapper to ``libssh2`` C library. Used by ``parallel-ssh`` as of ``1.2.0`` and is by same author.
271271

@@ -279,7 +279,7 @@ In addition, ``parallel-ssh`` uses native threads to offload CPU blocked tasks l
279279

280280
Out of all the available Python SSH libraries, ``libssh2`` and ``ssh2-python`` have been shown, see benchmarks above, to perform the best with the least resource utilisation and ironically for a native code extension the least amount of dependencies. Only ``libssh2`` C library and its dependencies which are included in binary wheels.
281281

282-
However, it lacks support for some SSH features present elsewhere like ECDSA keys (`PR pending <https://github.com/libssh2/libssh2/pull/206>`_), agent forwarding (`PR pending <https://github.com/libssh2/libssh2/pull/219>`_) and Kerberos authentication - see `feature comparison <http://parallel-ssh.readthedocs.io/en/latest/ssh2.html>`_.
282+
However, it lacks support for some SSH features present elsewhere like ECDSA keys (`PR pending <https://github.com/libssh2/libssh2/pull/206>`_), agent forwarding (`PR also pending <https://github.com/libssh2/libssh2/pull/219>`_) and Kerberos authentication - see `feature comparison <http://parallel-ssh.readthedocs.io/en/latest/ssh2.html>`_.
283283

284284

285285
********

0 commit comments

Comments
 (0)