"It's a Snark!" was the sound that first came to their ears, And seemed almost too good to be true. Then followed a torrent of laughter and cheers: Then the ominous words "It's a Boo-"-- from The Hunting Of The Snark by Lewis Carroll
Snark is a client for downloading and sharing files distributed with the BitTorrent protocol. It is mainly used for exploring the BitTorrent protocol and experimenting with the the GNU Compiler for Java (gcj). But it can also be used as a regular BitTorrent Client.
Snark can also act as a torrent creator, micro http server for delivering metainfo.torrent files and has an integrated Tracker for making sharing of files as easy as possible.
When given the option --share Snark will automatically create a .torrent file, start a very simple webserver to distribute the metainfo.torrent file and a local tracker that other BitTorrent clients can connect to.
Copyright (C) 2003 Mark J. Wielaard Snark is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
The GNU Compiler for java (gcj) version 3.3 or later. (Earlier versions have a faulty SHA message digest implementation.) On Debian GNU/Linux based distributions just install the gcj-3.3 package. Edit the GCJ variable in the Makefile if your gcj binary is not gcj-3.3.
Typing 'make' will create the native snark binary and a snark.jar file for use with traditional java byte code interpreters.
It is possible to compile the sources with other java compilers like jikes or kjc to produce the snark.jar file. Edit the JAVAC and JAVAC_FLAGS variables on top of the Makefile for this. And type make snark.jar to create a jar file that can be used by traditional java bytecode interpreters like kaffe: kaffe -jar snark.jar. You will need at least version 1.1 of kaffe for all functionality to work correctly (--share does not work with older versions).
When trying out the experimental Gnome frontend you also need the java-gnome bindings. On Debian GNU/Linux systems install the package libgnome0-java. You can try it out by typing 'make snark-gnome' and then run snark-gnome.sh like you would with the normal command line client.
To use the program start it with:
snark [--debug [level]] [--no-commands] [--port <port>] [--share (<ip>|<host>)] (<url>|<file>|<dir>) --debug Shows some extra info and stacktraces. level How much debug details to show (defaults to 3, with --debug to 4, highest level is 6). --no-commands Don't read interactive commands or show usage info. --port The port to listen on for incomming connections (if not given defaults to first free port between 6881-6889). --share Start torrent tracker on <ip> address or <host> name. <url> URL pointing to .torrent metainfo file to download/share. <file> Either a local .torrent metainfo file to download or (with --share) a file to share. <dir> A directory with files to share (needs --share).
Since this is an early beta release there are probably still some bugs in the program. To help find them run the program with the --debug option which shows more information on what it going on. You can also give the level of debug output you want. Zero will give (almost) no output at all. Everything above debug level 4 is probably to much (only really useful to see what goes on on the protocol/network level).
To simple start downloading/sharing a file. Either download the .torrent file to disk and start snark with:
Or give it the complete URL:
To start seeding/sharing a local file:
./snark --share my-host.example.com some-file
Snark will respond with:
Listening on port: 6881 Trying to create metainfo torrent for 'some-file' Creating torrent piece hashes: ++++++++++ Torrent available on http://my-host.example.com:6881/metainfo.torrent
You can now point other people to the above URL so they can share the file with their own BitTorrent client.
While the program is running in text mode you can currently give the following commands: info, list and quit.
Interactive commands are disabled when the --no-commands flag is given. This is sometimes desirable for running snark in the background.
|Version||Release date||GZIPped TAR file|
|0.5 - The Beaver's Lesson||27 June 2003||snark-0.5.tar.gz|
|0.4 - The Hunting||1 June 2003||snark-0.4.tar.gz|
|0.3 - The Bakers Tale||10 May 2003||snark-0.3.tar.gz|
|0.2 - The Bellman's Speech||5 May 2003||snark-0.2.tar.gz|
|0.1 - The Landing||27 April 2003||snark-0.1.tar.gz|
Latest precompiled jar file for use with traditional byte code interpreters: snark.jar.
Latest staticly linked executables for GNU/Linux x86 snark-static-i686-pc-linux-gnu.gz
Last updated: 27 June 2003.