libdasm is incomplete, and as far as i can tell it is very buggy.
operand structure is not well designed, besides it's heading to the direction of a general purpose disassembler engine but it's on top of x86. i don't see how either of them could work out well with those mixture design.
after i tried libdasm, opdis, distorm, the only one that is so far the easiest to use and has many programming language bindings as possible is BeaEngine, other than minor bugs i've seen and it's a little misleading information of register access (it's supposed to be a mask of read and write, not just tells you read or write). It is the best engine i've seen so far, although i do wish the author could put more information on side-effects.