diff --git a/README.md b/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..4c4268c2bd730a841a4a48712c38e78eba420c52
--- /dev/null
+++ b/README.md
@@ -0,0 +1,48 @@
+Hammer is a parsing library. Like many modern parsing libraries, it provides a parser combinator interface for writing grammars as inline domain-specific languages, but Hammer also provides a variety of parsing backends. It's also bit-oriented rather than character-oriented, making it ideal for parsing binary data such as images, network packets, audio, and executables.
+
+Hammer is written in C, but will provide bindings for other languages. If you don't see a language you're interested in on the list, just ask.
+
+Hammer currently builds under Linux and OSX. (Windows is coming.)
+
+Features
+========
+* Bit-oriented -- grammars can include single-bit flags or multi-bit constructs that span character boundaries, with no hassle
+* Thread-safe, reentrant
+* Benchmarking for parsing backends -- determine empirically which backend will be most time/space-efficient for your grammar
+* Parsing backends:
+  * Packrat parsing
+  * LL(k) (not yet implemented)
+  * GLR (not yet implemented)
+  * LALR(8) (not yet implemented)
+  * Regular expressions (not yet implemented)
+* Language bindings: (not yet implemented)
+  * C++
+  * Java
+  * Python
+  * Ruby
+  * Perl
+  * Go
+  * PHP
+  * .NET
+
+Installing
+==========
+Prerequisites
+-------------
+* pkg-config
+* glib-2.0 (for the test suite; everything else will build without glib)
+* make
+
+To install, type `make`. To run the built-in test suite, type `make test`.
+
+There is not currently a `make install` target; to make Hammer available system-wide, copy `libhammer.a` to `/usr/lib/` (or `/usr/local/lib/`, or wherever ld will find it) and `hammer.h` to `/usr/include/`. 
+
+Usage
+=====
+Just `#include <hammer.h>` and link with `-lhammer`.
+
+Examples
+========
+The `examples/` directory contains some simple examples, currently including:
+* base64
+* DNS