HBASE-17860 Implement secure native client connection
33 files changed
tree: 2f60f265c812a6c56a0a3f95c9c048a1c81e84a5
  1. bin/
  2. connection/
  3. core/
  4. docker-files/
  5. exceptions/
  6. if/
  7. security/
  8. serde/
  9. test-util/
  10. third-party/
  11. utils/
  12. .buckconfig
  13. .dockerignore
  14. .gitignore
  15. BUILDING.md
  16. Dockerfile
  17. hbase.doxygen
  18. Makefile
  19. Makefile.protos
  20. README.md
README.md

hbase-native-client

Native client for HBase

This is a C/C++ library that implements a HBase client.

Design Philosphy

Synchronous and Async versions will both be built on the same foundation. The core foundation will be C++. External users wanting a C library will have to choose either async or sync. These libraries will be thin veneers ontop of the C++.

We should try and follow pthreads example as much as possible:

  • Consistent naming.
  • Opaque pointers as types so that binary compat is easy.
  • Simple setup when the defaults are good.
  • Attr structs when lots of paramters could be needed.

Naming

All public C files will start with hbase_*.{h, cc}. This is to keep naming conflicts to a minimum. Anything without the hbase_ prefix is assumed to be implementation private.

All C apis and typedefs will be prefixed with hb_.

All typedefs end with _t.

Docker

The build environment is docker. This should keep a consistent build environment for everyone. Buck the build system works best with mmap'd files. On OSX this means that vmwarefusion works the best. However it should work with just the defaults.