Also it will be good to have a list of open source libraries which does layout & shaping.
Below links explains clearly.