Update readme

It would be good to have a clearer description of what bitmask-core is in the readme beyond "bitmask-core is a library to handle bootstrap for a LEAP provider in an unified way."

Here is some notes from the architectural design doc, this is a sloppy still, but can be edited down and added to the readme.

Bitmask-core will be code shared by desktop and mobile apps that will unify the discovery process. (android/ios bindings will be needed). The major architectural change in bitmask-core is that it generates clients automatically from the OpenAPI spec generated by latest menshen. [what does clients mean here?]

Bitmask-core implements a local key-value store to persist configuration (private bridges, etc). An interface to replace native stores will be needed.

It should gradually replace any bonafide implementation in desktop or android.

  • Documentation for this API is publicly accessible, for debugging & allowing other clients.

new concepts

These are new concepts still subject to some discussion.

  • bitmask-core tries different tactics to communicate with the public API. 

    • By default, it uses parroting (uTLS) and DoH resolvers.
  • Other circumvention techniques can be integrated (like the dnstt integration).

  • A client can (should) now request load info in the background, by passing a country code (“cc”) argument which represents the clients location to the API call.