There is quite a nice one, if you've used Arduino syntax before, at https://projects.drogon.net/raspberry-pi/wiringpi/
Haven't tried it yet (too busy), but checking the code over it looks good.
I don't think it's safe, yet, to use in a multi-tasking environment, by which I mean if you have two programs trying to access the ports it may conflict and not work as expected. I could be wrong though. I don't think the Python library is either. Or the Pi examples come to that (try running two hello_audio tasks to hear the noise it makes).
There is the usual confusion with pin numbering.
Hopefully I'll get to play around with it tomorrow.
It's "safe" in that it will do what you tell it to do - ie. if one program sets a pin to output and another sets it to input, then the last program to run "wins". There is no locking though, so if your setting a pin to an output and changing the value, then it's possible that another program changing another pin can alter that first operation if it gets interrupted in the middle of its read/modify/write cycle.
So the solution is to not have 2 programs playing with the GPIO....
And the pin numbering - yes - I notice they've changed the picture on the Wiki now to represent the actual Broadcom Chip pins - the arguments being "this is how it's done on other GPIO enabled devices". My view is that this is a Pi, not any other device with GPIO, lets keep it simple - which is the same view the Arduino folks take, however I'm going to update my "pins" diagram shortly.
It is technically correct that we should be using the Chip GPIO pins, but at the same time, it's so non-intuitive... If there is another Pi released with differnt GPIO pin mappings then it's all change, however if it's just a matter of changing the mapping in a library, then it's just that library that changes, re-link your own code and it carries on. Each way has its merits - I just want to make life easy for myself and other Arduino people I know who are moving to the Pi.
The one down-side right now is that your program will need to be root to use the GPIO with this library.
Do email or leave a comment on the website if you need though. If I have time this weekend then my plan is to relase and update (more documentation!) and put up some examples and photos, etc.