Blue - General Purpose C++ Library

Blue is hosted by
SourceForge Logo
Blue Project Page
Support This Project
Friday, July 2, 2004
One release today:
This release fixes a bug with element text only containing recognized characters ('?', '/', '=', '>', '!'). For example, if you had an xml file that looks like this:
The XML parser would throw an exception complaining that an invalid character ("?") was encountered.
Wednesday, June 30, 2004
Two releases today: These are mainly small-change releases for the Blue HttpMail Project.
Thursday, April 22, 2004
Three releases today: These are mainly bug-fix releases for the Blue HttpMail Project.
Tuesday, February 10, 2004
I've activated the donation feature on the Sourceforge project. I don't expect it to be used often (if at all), but it's there if anyone wants to show their appreciation of my efforts. I can't honestly say that donations will go directly towards the project, because it's not costing me anything. However, it will show me that my work is appreciated and will inspire me to work harder and quicker!
Wednesday, January 28, 2004
Three releases today: These are mainly bug-fix releases for the Blue HttpMail Project.
Friday, May 16, 2003
Three releases today: These are mainly bug-fix releases for the Blue HttpMail Project.
Friday, April 18, 2003
There were three releases yesterday. Blue version 0.06, Xml extension version 0.02, Http extension version 0.01. Check out the releases pages to download them. There were several changes in all the releases. You can check out the project news entry to see the list of changes.

The documentation for each release has been uploaded: Blue Documentation, Xml Documentation, Http Documentation.

The Blue HTTPMail project is coming along well. The proxy application now has basic POP support with SMTP and IMAP support coming soon. Be sure to check it out if you haven't already.
Tuesday, April 1, 2003
The website for the Blue HTTPMail project has been uploaded. Any updates regarding that project will be made there.
Monday, March 31, 2003
The Http extension has been added to CVS. It's to the point where I can use it to connect to Hotmail, as well as other websites. I've registered a new project with SourceForge for the Hotmail POP3 and IMAP proxy (see previous news entry). I'll be making a webpage for it shortly. I've got the framework for the application to the point where I can login, get a list of folders and download individual email messages. I'm probably going to make an unofficial extension for this (HttpMail extension), so that other applications can easily access HTTPMail servers.
Friday, March 28, 2003
Here's an update of what I'm planning on for the near future. The Xml extension is available, but it's not complete. There are a lot of things I want to do with it, but that's going to wait. There are two extensions I'm going to be working on next. One is an HTTP extension. This extension will make it easy to write software that acts as an HTTP client and/or server. After that, I'm going to do an Email extension. This extension will provide means for accessing POP3, IMAP and SMTP servers, as well as parsing and generating email messages.

Why am I working on those two extensions? I want to write a Hotmail POP3 and IMAP proxy. From there I want to write a bayesian spam filter. I've had my hotmail address for many years now, and it gets loads of spam, and the spam filter provided doesn't work worth crap. It will also be nice to be able to access my hotmail account through any POP3/IMAP email client.

BTW, Please leave some feedback on the Blue SourceForge Forums. Let me know how I'm doing!
Thursday, March 20, 2003
The Xml extension has been released! Version 0.01 can be downloaded here. XPath functionality included! I haven't gotten around to listing everything in the standard that's not supported, but for the most part, you shouldn't encounter any problems. Make sure you get Blue version 0.05 as well. The Xml extension requires version 0.05 in order to compile successfully.

Check out the new Xml extension and let me know what you think!
Tuesday, March 18, 2003
Great news! The XPath functionality is feature complete and fully functional! It's not fully compliant to the official XPath specs, but it supports most of it. The major thing it doesn't support is namespaces. I'm not sure if I'm going to support them in my Xml parser yet. There are some other things that aren't supported yet either. I'll come up with a list of things in the standard that aren't supported.

Anyway, it will be a couple more days before you get the release. I'm going to test the heck out of this thing and weed out some bugs before I make an official release of the Xml extension. There will be a release of Blue along with the Xml extension because several things were changed/added that the Xml extension depends on.

Come back soon for the Xml extension with XPath querying abilities!
Friday, February 28, 2003
The new Xml extension is available in CVS. Check out the CVS info page for info on anonymously downloading the source. Please note that you will also need the latest CVS version of the Blue library because the Xml extension relies on some changes that have been made since the last Blue release. I will package all this up for a release when the XPath functionality makes it in.

Keep in mind that this isn't the completed interface to the Xml extension. The code is fully functional as it is, but the class interfaces may change dramatically. Remember that when playing around with it. Let me know if you see anything that needs fixed/improved/changed!

For anyone interested in writing their own extension for Blue, I plan on writing up instructions on how to do this. However, you can look at the Xml extension as a template if you wish.
Tuesday, February 25, 2003
Okay, because the XPath functionality is taking more time than I anticipated, I'm going to release the Xml extension minus the XPath functionality. I'm cleaning up the code and adding documentation right now, along with finishing up some last minute interface changes. The Xml extension should be released no later than Friday.

The XPath functionality will be released, I just want to make sure that it's in a good, stable, working condition before I release it upon the world. Believe me when I say that this extension (when XPath functionality is included) will make using Xml in your applications a breeze... it may actually be a pleasure! Look for the XPath functionality to be added within a couple of weeks after the initial release of the Xml extension.
Wednesday, February 12, 2003
I know what you're saying: "Okay, what's going on here? Didn't he say we'd see the Xml extension pretty soon, over three weeks ago!?" Well, I had intended to release it sooner. However, there was a period of about one to two weeks where no work could get done on Blue due to other obligations. Also I decided to include a very useful and difficult to implement feature that's been sucking up more time than I had thought: XPath expressions. If you don't know what XPath is, you should check it out. It's very useful for navigating dom nodes from an Xml document. I've almost got all of the XPath features implemented and the bugs worked out, but you probably won't get to see it until the end of February. Why? I'm getting married this Friday and I'll be slightly busy for a while. Keep checking back though, the Xml extension is coming!
Wednesday, January 22, 2003
Just a little note to let everyone know that I'm still around. Things really slowed down during the holidays and real life has kept me extremely busy recently, but I've still been working. The next thing you will see is the Xml extension I mentioned in my last news entry. Hopefully, you'll see it pretty soon.
Friday, December 20, 2002
Here's an early Christmas present to all of you from me. Blue version 0.04 has been released. Go here to download it. This version contains initial kernel functionality, including various threading classes and support for shared libraries.

I am trying to keep the core Blue library as compact as possible. I'm trying to add functionality that most applications will require. However, there are a lot of things that quite a few applications would need, but they're not general enough to fit into the core Blue library. How do we fit these into the Blue library? By creating them as extensions. Basically, the extensions will be small libraries that specialize in one function, but follow the Blue licensing scheme as well as the Blue design and code formatting style. Some extensions that you can count on seeing soon include an Xml extension as well as an HTTP extension, and perhaps an email (POP, IMAP, SMTP) extension.

If you are interested in contributing to Blue, I highly encourage you to think of some general functionality you'd like, and use Blue and make it an extension for us all to use.

Well, that's all for now. I want to wish everyone a Merry Christmas and a Happy New Year. Stick around and see what Blue has in store for next year!
Thursday, December 12, 2002
Blue version 0.03 has been released. Go here to download it.

What's new in this version? The major feature is the new data streaming method that allows for the filtering of the streamed data very easily! Want to encrypt that data you're sending through your network application? Simply create an encryption filter and attach it to the OutputStream. Want it compressed? No problem, simply add a compression filter to the FilterChain before the encryption filter. That way the data is compressed, then encrypted. On the other end of the line, simply create a FilterChain with a decryption filter followed by the decompression filter and add it to the InputStream. The filtering is completely transparent to the applications and as far as they're concerned, they're dealing with plain, unaltered data.

I've added a new application to the downloads section to demonstrate a simple use of the stream filters. BlueBase64 is an application that can base64 encode and decode files.
Tuesday, December 10, 2002
Just a quick update to mention that a new version of FileCleanUP has been uploaded. This version simply fixes some bugs. Download it here! Also, Blue version 0.03 is just around the corner. I'm testing the new data streaming interface and it's working out great!
Monday, November 18, 2002
It seems I rushed the 0.02 release. A patch has been uploaded fixing a problem with missing virtual destructors in the network classes. Go here and download rather than I'll try to be more careful next time.
Friday, November 15, 2002
Blue version 0.02 has been released. This release contains various bugfixes as well as network components. Checkout the project page to download it, or go here!
Tuesday, November 12, 2002
Added FileCleanUP to the downloads section as an example of using Blue in an actual application.
Thursday, November 7, 2002
Blue version 0.01 released! Checkout the project page to download it, or go here!
Wednesday, November 6, 2002
The official Blue website is up! Please direct any questions/comments about Blue or this website to the forums found on the Blue project page. Look for Blue version 0.01 to be released very soon!
What is Blue?
Blue is a cross platform C++ library that is meant to be used as a general application toolkit. It provides basic utilities for such things as io devices (files, sockets), kernel objects (threads, shared libraries) and so on. The complexity of this low level, platform independent functionality is wrapped and replaced with an easy to use object oriented library so that a developer can concentrate on the application at hand rather than the low level libraries needed for necessary functionality.
What license is being used?
Blue is being released under the zlib license. See the License file in the Blue source code download for more information.
Do we need another generic C++ library?
In this developer's not-so-humble opinion, yes! The goal with Blue is to have a good, solid object-oriented C++ library that: I haven't found a library that covers all of these items to my satisfaction.
What does Blue consist of?
To see what features Blue supports right now, check out the CVS repository from the
SourceForge project page. Here's a list of some of the features Blue has as of this writing and what features are planned for the very near future: Coming Soon: Keep in mind that this is just a taste of what Blue will eventually consist of.
Blue Library
Get the latest Blue version
here. To get the latest and greatest development version from CVS, see this page.
Application: FileCleanUP
FileCleanUP is a very simple example that shows how Blue can be used in an application. All FileCleanUP does is archive and/or delete files older than a certain date. There is a configuration file in the download that documents how to use it. To build, open the MSVC++ 6 workspace and build. Note that Blue must already been built and the include and lib directories added to MSVC++ (see Blue readme). You can download FileCleanUP here (27 KB).
Application: BlueBase64
BlueBase64 is a simple application that demonstrates the streaming and filtering capabilities of Blue. It can base64 encode or decode files. See the readme file included with the source distribution. You can download BlueBase64 here (13 KB).
API Documentation
The Blue source code is being commented in such a manner that allows an external documentation generator (
doxygen, by Dimitri van Heesch) to generate the API documentation. The API documentation is available in two forms. It can be viewed online here or the ZIP can be downloaded here.
Helping Out
Contributions, whether they are code submissions, bug reports, feature requests, or even constructive critisism are very welcome. Please use the
Blue Sourceforge Project Page and join in the forum discussions, add a bug or whatever you'd like to do. Please help make Blue a great library for everyone!
The Blue project is very much in its infancy. While donations are not expected, they will certainly be appreciated! If you have extreme interest in Blue HTTPMail and would like to donate funds to the project, then visit the donation page.

Blue, this website, and other related material is Copyright (c) 2002-2004 Josh Harler