Yeah, I did that for a class project some years ago... 1Mbps was fairly easy with pedestrian op-amps doing the heavy lifting, although I had read Phil Hobb's notes on noise in photodetectors to optimize the design somewhat (they helped so much I decided to go out and buy his book). The original goal was to have a full-duplex system via time-division multiplexing, but I ran out of time to do it (initially synchronizing the two ends when they're first turned on takes a bit of effort), so instead I just had a toggle switch that turned everything around.
Getting way off-topic here:
At the time I argued something along the lines of how RS-232 to fiber optic converters are often used for long distance links in harsh environments (e.g., production floors), and how requiring only one fiber rather than two would save costs. I realize these days that, while, sure, it does save costs, in many plants the labor of installing *any* sort of link completely outweighs the costs of the actual fiber, associated hardware, etc.
I do know of a couple of plants where this wouldn't be the case, though -- a sawmill here in Oregon where the owner has literally dozens of little microcontroller-based projects running the place that he designed himself (most are just soldered together on perfboard because they're all one-offs), and a glass factory in Wisconsin where the entire float glass line is overseen by a single PC... running a DOS program designed some time in the late-'80s! (If you asked someone to design such a system for you, these days the response would probably involve multiple PLCs, multiple PCs, etc...)
---Joel Kolstad