format
use native protobuf