Alexander Lamaison <email@example.com>
What is Swish?
Swish is a plugin for Microsoft Windows Explorer that integrates access to
remote files via SSH/SFTP.
As well as management tasks such as renaming and deleting files
on the remote server users can drag and drop the contents of files
and folders from the remote server to the local filesystem.
Currently, Swish only supports simple password and keyboard-interactive
Supported Operating Systems:
Window 7 (most tested)
Windows Vista (regularly tested)
Windows XP (regularly tested)
Windows 2000 (regularly tested)
Windows Me (rarely tested)
Windows 98 support is on hold for the time being - as of version 0.3.1.0
the backend DLL seems to have problem (maybe related to MSVCRT versions).
Unfortunately, Windows 95 and NT 4 are not immediately supported. This is
because the C runtime used when compiling with Visual Studio 2005 is
no longer compatible with their API. There are a few ways you can work round
this if you wish:
- Compile Swish using Visual Studio 2005. You may have to fix the code to
allow this; I've never tried it.
- Make *all* the projects statically link to the runtime library (/MT).
In addition you will have to use a version of OpenSSL similarly linked
so you will have to compile your own. The instructions that come with
OpenSSL make it clear how to do this. Again, I haven't tried this myself
so it might not work.
Requirements to run:
Internet Explorer 5.5 or greater
(may work with 5.01 but required SHRegGetPath() function seems broken).
For Windows 9x, the Microsoft Layer for Unicode (MSLU, aka Unicows)
Requirements to build:
The easiest way to set everything up is to run the prereqs.bat script from
the build/ directory. It will fetch all the dependencies except Visual
Studio, the Windows SDK, Boost and Wix. These you must install yourself
from the links below.
Visual C++ 2005
Express edition is unlikely to work but feel free to try.
If building on Windows Vista or later you will need two updates:
- VS 2005 SP1: http://msdn.microsoft.com/en-us/vstudio/bb265237
- VS 2005 SP1: Update for Windows Vista http://go.microsoft.com/?linkid=6366078
A recent version of the Windows SDK
The latest version requires an hotfix to Visual Studio 2005:
A modern C++ template library for COM.
http://bitbucket.org/alamaison/swish_comet/overview/ (custom Swish fork)
WTL 8 which can be obtained from Microsoft or through SourceForge
Microsoft Permissive Licence: http://www.microsoft.com/downloads/
Common Public Licence: http://sourceforge.net/projects/wtl/.
You can get an installer from BoostPro Computing:
http://www.boostpro.com/products/free. However, for a 64-bit build
of Swish you will have to build Boost yourself from source. For more
information see http://www.boost.org.
Currently Boost 1.43 is the latest supported version. Later versions
may work for Swish itself, but the tests will fail to build.
Candidate boost library handling internationalisation.
Wix 3 with Votive
Not required to build Swish itself but needed if you want to build
the installer. http://wix.sourceforge.net/
For the Provider backend:
The directories to put the sourcecode for these dependencies in should
already exist in the thirdparty/ directory.
libssh2 can be obtained from http://www.libssh2.org. Swish usually requires
the latest snapshot. You can get OpenSSL from http://www.openssl.org and
compile it yourself but a much easier option is to download the Swish
pre-packaged binary with just the stuff needed for Swish:
zlib binaries are available at http://www.zlib.net/.
Requirements for testing:
CppUnit (works with v1.12.0, may work with other versions) must be present
on the local machine. Many tests also require a remote host available to
connect to over SSH. Swish assumes this is unix-based and that the test
user account has a home directory named /home/username.
CPPUNITDIR: The location of the CppUnit files.
TEST_HOST_NAME: The name of the remote testing host.
TEST_USER_NAME: The user name of the SSH account on the remote host.
TEST_HOST_PORT: The port on the remote host that SSH is listening on
(optional - defaults to 22 if not set).
TEST_PASSWORD: The password to use to connect to the remote host if
If you are going to run the tests I **STRONGLY** recommend using a separate
user account for them as they create and delete files and, being tests, have
the potential to invoke disastrous code. Protect yourself from them!
This product includes software developed by the OpenSSL Project for use in
the OpenSSL Toolkit (http://www.openssl.org/)
This product includes cryptographic software written by Eric Young
Building on Vista and later:
When building on Windows Vista, make sure you are running Visual
Studio as an Administrator. Otherwise it can't register the components
and later components that depend on earlier ones will fail to build.
The architecture of Swish is divided into a back-end and a front-end. The
former deals with the SFTP connection to remote hosts while the latter
is concerned with displaying the results to the user and handling
The current Swish backend is based on libssh2 (http://www.libssh2.org).
While the eventual aim is to offer a choice of back-end implementations
with different capabilities, this is currently the only one.
$Id: README 688 2011-03-19 22:47:12Z alamaison $