The samskivert library (SL) aims to provide useful reusable Java routines that do things for which we've been unable to find useful reusable implementations on the net.
Given the emphasis on reusability, SL attempts to closely adhere to the following principles:
- Each individual module should depend as little as possible on other SL modules. Obvious exceptions include modules that are a logical extension of other modules and modules that clearly require a service that is implemented by another SL module and would have to implement that service themselves in the absence of dependence on the other module.
- Modules should be both simple to use and as general purpose as possible. To meet these two competing requirements, a balance must be struck at that sweet spot where reusability is maximized.
- Code included in SL will freely depend on JDK packages available in the Java 2 platform and beyond. SL is initially a repository of software useful for server-side or stand alone applications and therefore need not make compromises to function in the jungle of JVMs in commonly available web browsers.
- We are not here to reinvent the wheel, nor to provide a uniform interface to every software service under the sun. If something is available in a freely redistributable and reusable form from someone else, it won't be found in SL. If SL depends on such software from another source, it will provide clear documentation on how to get that software and make use of it within the scope of SL's particular needs. Again a balance of reusability will be struck here and software that is sufficiently difficult to make usable in an arbitrary environment will not be used by SL and may be "reinvented".
I and others who have contributed to the library hope that you find it useful, easy to use and time saving. Comments and contributions are always welcome.
The packages at a glance include:
- com.samskivert.io - various I/O related utilities.
- com.samskivert.jdbc - support services for applications that access relational databases via JDBC.
- com.samskivert.jdbc.depot - Depot has been moved into a separate project.
- com.samskivert.jdbc.jora - a very old ORM library.
- com.samskivert.servlet - services and patterns that are useful in developing web applications.
- com.samskivert.servlet.user - services for managing a database of users in a web application or suite of web applications.
- com.samskivert.swing - extensions and patterns for building user interfaces with Swing.
- com.samskivert.text - utilities for text processing and i18n.
- com.samskivert.util - a variety of utility services including data structures, synchronization support, text processing and more.
- com.samskivert.velocity - parts of a simple web application framework built around the Velocity template engine.
- com.samskivert.xml - XML related services.
Note that SL has been around since 1999 and as a result some of its functionality has been rendered obsolete, but much of it has been and remains in active use by various projects at Three Rings.