-## Example usage
-Generating Go bindings from the JSON files located in the `/usr/share/vpp/api/` directory
-into the Go packages that will be created inside of the `bin_api` directory:
-```
-go run binapi_generator/generator.go --input-dir=/usr/share/vpp/api/ --output-dir=bin_api
-```
+## Overview
+
+Here is a brief overview for the repository structure.
+
+- [govpp](govpp.go) - the entry point for the GoVPP client
+ - [adapter](adapter) - VPP binary & stats API interface
+ - [mock](adapter/mock) - Mock adapter used for testing
+ - [socketclient](adapter/socketclient) - Go implementation of VPP API client for unix socket
+ - [statsclient](adapter/statsclient) - Go implementation of VPP Stats client for shared memory
+ - [vppapiclient](adapter/vppapiclient) - CGo wrapper of vppapiclient library (DEPRECATED!)
+ - [api](api) - GoVPP client API
+ - [binapigen](binapigen) - library for generating code from VPP API
+ - [vppapi](binapigen/vppapi) - VPP API parser
+ - cmd/
+ - [binapi-generator](cmd/binapi-generator) - VPP binary API generator
+ - [vpp-proxy](cmd/vpp-proxy) - VPP proxy for remote access
+ - [codec](codec) - handles encoding/decoding of generated messages into binary form
+ - [core](core) - implementation of the GoVPP client
+ - [docs](docs) - documentation
+ - [examples](examples) - examples demonstrating GoVPP functionality
+ - [internal](internal) - packages used internally by GoVPP
+ - [proxy](proxy) - contains client/server implementation for proxy
+ - [test](test) - integration tests, benchmarks and performance tests
+
+## Quick Start
+
+Below are some code examples showing GoVPP client interacting with VPP API.
+
+### Using raw messages directly
+
+Here is a code for low-level way to access the VPP API using the generated messages directly for sending/receiving.