code: function Connection(option) {
  
    option = option || {};
  
    var host = option.host || '127.0.0.1:9042';
    var port = option.port || 9042;
  
    if (host.indexOf(':') > 0) {
      host = host.split(':');
      port = Number(host[1]);
      host = host[0];
    }
  
    this._host = host;
    this._port = port;
    this._keyspace = option.keyspace;
    this._protocolVersion = option.protocolVersion || 2;
    this._streamHandlers = {};
    this._streamIds = [];
    for (var i = 0; i < 100; i++) {
      this._streamIds.push(100-i);
    }
    this._streamWaitQueue = [];
    this._consistencyLevel = option.consistencyLevel || option.cl || cql.CL.QUORUM;
    this._maxWaitPerConns = option.maxWaitPerConns || 100;
    this._preparedCacheSize = option.preparedCacheSize || 10000;
    this._preparedCache = LRU(this._preparedCacheSize);
    this._preparingMap = {};
    this._reconnectInterval = option.reconnectInterval || 5000;
    this._connectTimeout = option.connectTimeout || 1000;
    this._autoReconnect = option.autoReconnect === true;
  }
docs: cql.CL = {
  ANY,
  ONE,
  TWO,
  THREE,
  QUORUM,
  ALL,
  LOCAL_QUORUM,
  EACH_QUORUM
  }
  
  cql.messages = {
  Error,
  Startup,
  Ready,
  Authenticate,
  Credentials,
  Options,
  Supported,
  Query,
  Result,
  Prepare,
  Execute,
  Register,
  Event,
  Batch,
  AuthChallenge,
  AuthResponse,
  AuthSuccess
  }
  
   
  Create a connection
  @param {object} option - optional parameters
  @param {string} option.host - host address
  @param {string} option.port - port number
  @param {string=} option.keyspace - default keyspace
  @param {number=} option.protocolVersion - CQL procotol version
  @param {number]} option.preparedCacheSize - size of cache of prepared statements