State of SILC Project
Pekka Riikonen <[email protected]> Thu, 27 Nov 2003 12:30:17 +0100 (CET)
| Newsgroups | gmane.network.silc.announce |
|---|---|
| Message-ID | <[email protected]> |
Hello, As most of you probably noticed the SILC Client 1.0 has been released. What most of you probably also noticed is that I didn't make the release of SILC Client 1.0. That release was done by Jochen Eisinger, who is also known as c0ffee. The purpose of this email is to explain the current status of the SILC project and to give some idea about the short term future we are faced with, where the project is going next and what are the challenges we are facing. The email is quite long, so prepare some time to read it. I have asked Jochen (c0ffee) to take over the maintainance of the SILC Client 1.0 series. This means that I will not do any active maintainance, development or releases to the SILC Client 1.0 series anymore. This means that the man in charge with SILC Client now is c0ffee. I am not going away, I am there for support and I am always willing to help as much as I can. For those that do not know who c0ffee is, he is the author of SILC Plugin for Irssi and authors many other programs as well. He has an excellent knowledge in both Irssi code and SILC code which is important, as SILC Client is based on Irssi. He has previously done work on security software products as well which is a good thing. As far as the development of the SILC Client 1.0 series goes the decisions will be made by c0ffee. If you want a new feature to SILC Client, if you want some bug to be fixed or something else, the c0ffee is the man that makes the decision whether or not it will be done. He will also decide the releases and the release schedule. I hope that other developers will lend hand to c0ffee as well. It would be good if c0ffee wouldn't have to face the task alone. From the SILC Project's point of view the SILC Client is very important application and we would like to see it continue strong in the future as well. It is the reference client implementation of the SILC protocol and it has a wide user base. Even though, there has been some talks that maybe SILC Client should be replaced by SILC Plugin, from project point of view this is undesirable. It would be a real shame if the SILC project, the developer of the SILC protocol, would not provide a full reference client, silc(1), and full reference server, silcd(8). I feel that it is important to provide standalone client instead of relying on a third-party client. What I would like to see is perhaps more closer integration of SILC Client and SILC Plugin, so that perhaps in the future they are one and the same. One is just compiled as standalone client and one as Irssi plugin. In this case, the SILC Plugin could then become as "official" SILC project software, available from the SILC project sites. The reason why I want to give away the SILC Client development is simply because of lack of time. The next stable release in succession is SILC Server 1.0 if all goes as I have planned. I have already focused my main development efforts to the SILC Server, to see that it will be stable and supports all the SILC protocol features what a reference server should support. I will also turn my focus to the SILC Toolkit 1.0 which awaits its release as well. So, lets talk about the status of SILC Server and SILC Toolkit. I have no definite schedule for the SILC Server 1.0 yet. This is because I have not yet assessed what needs still work, what is missing, what will be in 1.0 and what will be left out. The server however is becoming more stable all the time and we are moving towards the 1.0 quickly. I would say that if SILC Server 1.0 isn't out within next 7-6 months I would be disappointed. The SILC Toolkit is basicly ready. It awaits two big tasks to be completed before it can come out. The first one is the completion of the Toolkit Reference Manual. More documentation, guides and tutorials will have to be written. The second one is the revamp of the SILC distribution system. This isn't part of Toolkit actually but relates closely to it. The reason why it needs to be done is the dual licensing which the Toolkit will have. There are other more technical reasons which I will not get into now why it needs to be revamped. This is actually quite big task, it's invisible to the public, requires careful work in the SILC CVS and something we just need to do. After that I am able to create SILC Toolkit distributions the way I want and this is also the time when SILC Toolkit 1.0 will come out. This could happen quite quickly actually if some volunteers with good skills in perl sign up. :) However, my current plan is that SILC Server 1.0 would come out before SILC Toolkit 1.0. I am calling everyone willing to contribute to take part in the SILC Server 1.0 and SILC Toolkit 1.0 development so that we can get them out as quickly as possible. Other important goal of the SILC Project is the SILC protocol's standardization. This is work that should have started with IETF last summer but I was busy with other stuff so I was unable to start it. This is something I want to get into again. I don't have anything interesting to say about it at this point, but I will let people know when I have something. Now that the SILC Client 1.0 is out I hope I get some time to do something about this as well. What else? What happens after all software is at 1.0? Well, the development goes into 1.1. The 1.0 has taken this many years because the protocol was being developed at the same time. The protocol is ready as far as I see it. It is not perfect but it is what it is. If we want it better then it's to be called SILC2. :) The purpose of 1.1 versions development is now to make the software "the right way (tm)". The 1.0 is the reference implementation, it is excellent implementation, it is quite fast, and supports almost everything. But it's not perfect, it's not as optimized as I would like it to be and it has years and years of history hanging over its head. This is something I want to change in 1.1, to make it right, to make it perfect, to make it small, compact and fast. Most of you probably doesn't even know that development towards 1.1 has already begun. I started developing for 1.1 almost a year ago. I have been doing that in private because I didn't want to release another code base when the 1.0 code base isn't stable or released as stable yet. It would have moved the focus away from making sure the 1.0 is stable and doesn't have any hard edges. That would have been a bad thing. For this reason the work I have done, I have done in private. But rest assured, the code will be released to the public. So, what is so special about 1.1? (rest of the email gets technical, you can ignore it if you don't care about it) The first thing is the need to fulfill my need to be perfect in what I do, to make sure that the stuff I hate in 1.0 will be rewritten in 1.1. Some of those parts has already been rewritten in the 1.1 code base. Majority has not been done yet. The purpose is to make the generic SILC code fast, optimized, small, compact and to consume memory as little as possible. This will mainly result into changes in the utility library. I want the code to be fast and usable on small memory systems (such as hand held devices) as well, into which the 1.1 is focused too. The second thing is a full rewrite of SILC Server. Currently, the server is standalone application. I would like to rewrite it as library, just like the client is now. The server also has so, so, so much history behind it that it just screams to be rewritten. The current server code is still quite good and I like it for the most parts. But I want to rewrite it, now that I know how to do it. :) When developing a protocol and software implementation of it at the same time, it becomes very hard to do consistent code and consistent design choices all the time. For this reason it gets kludgey as time passes. Now that the protocol is ready I can concentrate on making the implementation perfect. Third thing in 1.1 is in bringing the X.509 certificate and CRL support to applications. Work for this has already been partly done in the 1.1 code base. This is a big task and will require time and hard work to be completed. An OpenPGP certificate support should be done as well, and SSH2 public key support perhaps too. My personal interest is in X.509. Fourth thing in 1.1 is a possible rewrite of SILC Client library. I have not yet decided whether it will be done. Some parts of it will definitely be rewritten because of other changes in the 1.1 code base but for the most parts the Client library is pretty good. So it's possible that it won't be rewritten entirely, only partly. No work for this has been done in 1.1 code base and I haven't yet decided its fate. I want to do the server as library first. And there you have it. You can live with 1.0, but you will definitely want the 1.1. If you are SILC Toolkit user (application developer) you will kill for 1.1. :) If you think current SILC Toolkit is good, easy to use, you ain't seen nothing yet. :) Well... that's the goal anyway. Once the development of 1.1 goes "public", there will be lots of interesting stuff for other developers to get involved with it as well. And I welcome this. I call this future version as 1.1. That isn't to say that it couldn't be called something else later. All the stuff I wrote about what will be in 1.1, has been for a very long time in TODO-1.0 file in CVS as well. So, things can look quite interesting in the future. But now the focus is in 1.0. Pekka ________________________________________________________________________ Pekka Riikonen priikone at silcnet.org Secure Internet Live Conferencing (SILC) http://silcnet.org/ _________________________________________________________ Info: http://lists.silcnet.org/listinfo/silc-announce Archive: http://lists.silcnet.org/pipermail/silc-announce FAQ: http://silcnet.org/?page=faq