XWT/Ibex/Vexi
At one time I was one of the lead developers for XWT (which was later renamed to Ibex and then forked as Vexi). Depending on who you ask I may still be considered a developer. One of these days I'll get back into it. Despite the fact that I'm no longer actively working on the project I'm still proud of the work I've done on it. This includes the native OS X port, co-authoring the js implementation (org.ibex.js), and a little bit of everything else.
NestedVM
NestedVM is a utility that allows code written in unsafe languages such as C and C++ to be run unmodified under safe virtual machines such as the JVM. It uses a unique binary-to-binary translation approach which allows it to be language agnostic and fully support the source language (because we actually use the existing compiler). Much more information about NestedVM can be found in our IVME paper.
The source code for NestedVM is released under the LGPL and is available at darcs.brianweb.net/nestedvm.
org.ibex.classgen
ClassGen (which is a terrible name) is a lightweight JVM bytecode generation library. It was initially written for NestedVM. It is smaller, faster, and (in my opinion) much cleaner that alternatives such as BCEL and gnu.bytecode.
Recently classgen gained support for what we call JSSA ("Java" Static Single Assignment). It is an SSA-like representation that can be converted to and from normal JVM bytecode. It is much easier to generate and manipulate than normal bytecode. JSSA is still in its early stages and is somewhat incomplete.
The source code for ClassGen is released under the GPL and is available at darcs.brianweb.net/classgen
org.ibex.crypto
org.ibex.crypto is a pure java implementation of many cryptographic algorithms, a parser for X509 certificates, and a full SSL/TLS implementation. The primary design goal was it make it small. It was based on Adam Megacz's TinySSL.
The source code for org.ibex.crypto is released under the GPL and is availale at darcs.brianweb.net/crypto.
GCClass
GCClass (another terrible name) is a dead code elimination utility for Java. It is based on BCEL because ClassGen hadn't been written yet.
The source code for gcclass is released under the GPL and is available at darcs.brianweb.net/classgen.
HSUtils
HSUtils is a collection of useful Haskell libraries including a number theory library, balanced tree library, html parser, curl bindings, and a library for "Type-Safe Words". More information can be found in the literate haskell documentation.
The source code for hsutils is released under the GPL and is available at darcs.brianweb.net/hsutils.
Any2Any
Any2Any is a program like Synergy. I'm not sure which came first, but when I wrote Any2Any I didn't know about synergy. I don't maintain Any2Any anymore but I still find uses for it every once and a while.
Download the soure code or win32 binaries.
Miscellaneous other Software
This is mostly just simple one-off software that probably isn't useful to anyone other than me.
- A DAAP library. This repo also contains a HTTP library that I started working on.
- libraryapp is a Haskell applications to check on the availability of books and movies at my local library. It generates a list of what is available at each branch (useful for getting the most bang for your buck per library trip). However, if you don't live in Monroe county in New York this'll be useless.
- "Brian's OS" a little x86 OS I wrote for fun. It doesn't do much.
- Putty Stuff - some patches to putty to allow a list of host keys to be built-in to the binary and some reasonable defaults to be set on startup. I use this for the "putty" link on my webpage.
- RIT Crypto - my homework for a crypto class I took a RIT. It contains Haskell implementations of a lot of crypto stuff.
- Some handy scheme libraries. This is mostly syntax-macos and library functions to allow me to write haskell in scheme. It includes macros for list comprehensions, the do syntax, and an implementation of monads.
- A Sudoku solver written in Haskell. The literate haskell documentation has more information about the algorithm and the implementation.
Everything I forgot
Since I'll probably never update this page you should probably check out darcs.brianweb.net and cvs.brianweb.net. If I've done something cool recently it is probably there.