Mac OS X >= 10.7 support
[runtime.git] / README
diff --git a/README b/README
index 13e88e5ae66ab5e638a0eef252164a1cdcfbe7db..82eacbb30c601fdd52cbce0649510687d7571d5d 100644 (file)
--- a/README
+++ b/README
-SILC - Secure Internet Live Conferencing
-========================================
+SILC Runtime Toolkit
+====================
 
-SILC (Secure Internet Live Conferencing) is a protocol which provides
-secure conferencing services in the Internet over insecure channel.
-SILC is IRC like softwarre although internally they are very different.
-Biggest similarity between SILC and IRC is that they both provide
-conferencing services and that SILC has almost same commands as IRC.  Other
-than that they are nothing alike.  Biggest differences are that SILC is 
-secure what IRC is not in any way.  The network model is also entirely
-different compared to IRC.
+SILC Runtime Toolkit (SRT) provides useful utility functions for application
+programmers.  The SRT can be used as the sole and main runtime in any
+application.  It provides application main loop, hash table, lists, atomic
+operations, threads, locks, queues, file descriptor stream, socket stream,
+network routines, a finite state machine, memory pool, random number
+generator, buffers, regular expressions, and many many other features.
 
+The SRT natively supports multiple platforms; Unix/Linux, Windows, Mac OS 
+X and Symbian OS, and all APIs work identically or nearly identically on 
+all support platforms.  The SRT and all of its APIs are entirely reentrant 
+and some APIs are completely thread safe.
 
-Running SILC
-============
-
-After installing the SILC to the system the SILC client is started by
-giving command:
-
-       silc
-
-If you want to run with specific configuration file give -f option.
-
-To run the server you should configure the server first.  To run the
-server give the command:
-
-       silcd
-
-This will launch the server on to the background.
-
-
-Features
-========
-
-Features to be included into the final release of SILC.  [Note that the
-current Developer's Version does not include all of these features, read
-TODO file for more information.]
-
- o Normal conferencing services such as private messages, channels,
-   channel messages, etc.  All traffic is secured and authenticated.
-
- o No unique nicknames.  There can same nicknames in SILC without
-   collisions.  SILC has unique Client ID's, Server ID's and Channel ID's
-   to assure that there are no collisions.
-
- o Secure key exchange and authentication protocol.  SILC Key Exchange
-   protocol provides key material used in the SILC sessions in secure
-   manner.  The protocol is immune for example to man-in-the-middle 
-   attacks.  The SILC Authentication protocol provides strong 
-   authentication.  Authentication may be based on passphrase or public
-   key (RSA) authentication.  For clients there is an option not to
-   use authentication when connecting to servers.
-
- o All traffic is encrypted and authenticated using the best cryptographic
-   algorithms out there.  Command messages, private messages and channel
-   messages are all protected by encryption.  User can set private keys
-   for both private message and for channels so that even SILC servers do
-   not know the keys.  Cipher keys are, by default, 128 bits in length and
-   public keys, by default, 1024 bits in length.
-
- o Supports data compression with GZIP to improve performance.
-
- o Supports SOCKS4 and SOCKS5 firewall traversal protocols.
-
- o SIM (SILC Module) support.  Support for loading of shared objects at 
-   run-time that provides new and extended features to both SILC client
-   and server.  These can provide extra ciphers and extra features to
-   the software.
-
- o SILC client can be installed and used without root privileges.
-
- o SILC client can be configured by system wide configuration files but
-   with user specific configuration files as well.
-
+The SRT is free software and is dual-licensed with GNU GPL and BSD
+licenses.
 
 History
 =======
 
-Even though SILC were released in summer 2000 to the public the idea and 
-the protocol itself is quite old. I got the idea about SILC in its 
-current form in the year 1996 and first lines of codes were written in 
-early 1997. This release is now third rewrite of the SILC. The very first 
-version were written in 1997 and it included SILC client and very very 
-preliminary SILC server. The server actually weren't usable but the 
-client looked pretty much the same as it does now. At that time the SILC 
-also included RSA implementation and 3DES implementation. The random 
-number generator that exists in this current release is actually based on 
-the RNG written in 1997. The RNG written in 1997, on the other hand, were 
-based on the SSH's random number generator. The RNG has been rewritten 
-twice since the first version.
-
-I stopped writing the SILC later in 1997 when I got busy at school and in 
-work. The pause lasted several months. The development resumed in 1998 
-when my friend (Juha Räsänen) and I implemented ElGamal algorithm. I 
-rewrote some other parts as well. However, for the same reasons as 
-previously the development stopped again. I resumed the development later 
-in 1998 by doing rewrite of the SILC in C++. This was obviously a mistake 
-but at that time it seemed like a good idea. Again, in the winter 1999 I 
-got very busy writing my thesis and was forced to stop the development 
-again. I also, started a new job in the spring.
-
-Later, in 1999, I decided that this time I'm going to make it the right 
-way. C++ was obviously a bad choice so I decided to fall back to plain C 
-language. I also decided to do complete rewrite and started doing more
-thorough planning of what the SILC actually should include. I also 
-decided that this time it is going to kill me before I stop the 
-development. I started writing SILC in the weekends and actually 
-everytime I had some spare time. I also started a new job but I didn't 
-let that get to my way. The result of this development effort is the 
-release now in public. 
-
-I've learned a lot by doing the SILC. I guess, when I started it I wasn't 
-that good of a C programmer. That alone was a reason why SILC hasn't seen 
-the day of light before now. My programming style has also changed 
-dramatically during these years. Actually, it has changed couple times 
-since this last rewrite as well. However, the code style of current SILC 
-release is quite consistent (actually the coding style SILC has been 
-written now I've learned in my current job).
-
-There is probably over 85% of new code in this third rewrite. Rest has 
-just been copied from the old versions and only minor changes has been 
-made (like changed function names and overall coding style). I've 
-preserved the dates of the old files (dating back to 1997) that has 
-existed in some forms in the old versions. There is a lot of new code but 
-already I see a lot that needs rewriting. The development continues.
-
-
-Contact
-=======
-
-Feedback and comments are welcome.  Bug reports should be sent to the
-development mailing list.
-
-Official SILC project web site      : http://silcnet.org/
-FTP archive for SILC project        : ftp://silc.pspt.fi/pub/silc/
-Development mailing list address    : silc-devel@lists.sourceforge.net
-
-                               Pekka Riikonen <priikone@poseidon.pspt.fi>
+The SRT used to be part of the SILC Toolkit; a software development kit for
+Secure Internet Life Conferencing application programmers.  The SRT was
+split off from the SILC Toolkit into its own package due to its generic and
+useful nature.  Many APIs still present in SRT have been in use in the SILC
+Toolkit since the year 2000.