[feature] lua/python binding and unit test