Removed compression
After running some very scientific tests I came to the conclusion that compression does not benefit Highway in any way. On top of that it is a nightmare to implement Highway clients in other languages (I'm looking at you JavaScript). So to conclude: Fuck compression (and JavaScript)
This commit is contained in:
parent
d2571f6d50
commit
b9dbcdc399
1 changed files with 9 additions and 12 deletions
|
@ -29,7 +29,6 @@ INVALID_METADATA_LAYOUT = 2
|
||||||
INVALID_DATA_TYPE = 3
|
INVALID_DATA_TYPE = 3
|
||||||
|
|
||||||
META_ROUTE = "meta"
|
META_ROUTE = "meta"
|
||||||
COMPRESSION_LEVEL = 3
|
|
||||||
PACK_FORMAT = "Bh"
|
PACK_FORMAT = "Bh"
|
||||||
|
|
||||||
|
|
||||||
|
@ -96,10 +95,9 @@ def prepare_data(data):
|
||||||
return data, original_data_type
|
return data, original_data_type
|
||||||
|
|
||||||
|
|
||||||
def pack_message(data, exchange_route, compression_level,
|
def pack_message(data, exchange_route,
|
||||||
debug=False, indexed_dict=False):
|
debug=False, indexed_dict=False):
|
||||||
data, original_data_type = prepare_data(data)
|
data, original_data_type = prepare_data(data)
|
||||||
data = gzip.compress(data, compression_level)
|
|
||||||
return create_metadata(original_data_type, exchange_route,
|
return create_metadata(original_data_type, exchange_route,
|
||||||
indexed_dict=indexed_dict) + data
|
indexed_dict=indexed_dict) + data
|
||||||
|
|
||||||
|
@ -111,7 +109,7 @@ def parse_metadata(message):
|
||||||
|
|
||||||
|
|
||||||
def parse_message(data, data_type):
|
def parse_message(data, data_type):
|
||||||
data = convert_data(gzip.decompress(data[4:]), data_type)
|
data = convert_data(data[4:], data_type)
|
||||||
return data
|
return data
|
||||||
|
|
||||||
|
|
||||||
|
@ -141,10 +139,9 @@ def convert_data(data, data_type, debug=False):
|
||||||
|
|
||||||
|
|
||||||
class Shared:
|
class Shared:
|
||||||
def setup(self, routes, compression_level=COMPRESSION_LEVEL, debug=False):
|
def setup(self, routes, debug=False):
|
||||||
self.routes = routes
|
self.routes = routes
|
||||||
self.routes["meta"] = Meta()
|
self.routes["meta"] = Meta()
|
||||||
self.compression_level = compression_level
|
|
||||||
self.debug = debug
|
self.debug = debug
|
||||||
|
|
||||||
|
|
||||||
|
@ -201,8 +198,8 @@ class Shared:
|
||||||
try:
|
try:
|
||||||
self.raw_send(pack_message(data,
|
self.raw_send(pack_message(data,
|
||||||
self.peer_reverse_exchange_routes[route],
|
self.peer_reverse_exchange_routes[route],
|
||||||
self.compression_level, debug=self.debug,
|
debug=self.debug, indexed_dict=indexed_dict),
|
||||||
indexed_dict=indexed_dict), binary=True)
|
binary=True)
|
||||||
except KeyError:
|
except KeyError:
|
||||||
Logging.error("'%s' is not a valid peer route." % route)
|
Logging.error("'%s' is not a valid peer route." % route)
|
||||||
else:
|
else:
|
||||||
|
@ -217,8 +214,8 @@ class Shared:
|
||||||
|
|
||||||
|
|
||||||
class Server(WebSocket, Shared):
|
class Server(WebSocket, Shared):
|
||||||
def setup(self, routes, compression_level=COMPRESSION_LEVEL, debug=False):
|
def setup(self, routes, debug=False):
|
||||||
super().setup(routes, compression_level, debug=debug)
|
super().setup(routes, debug=debug)
|
||||||
self.override_methods()
|
self.override_methods()
|
||||||
|
|
||||||
|
|
||||||
|
@ -227,6 +224,6 @@ class Server(WebSocket, Shared):
|
||||||
|
|
||||||
|
|
||||||
class Client(WebSocketClient, Shared):
|
class Client(WebSocketClient, Shared):
|
||||||
def setup(self, routes, compression_level=COMPRESSION_LEVEL, debug=False):
|
def setup(self, routes, debug=False):
|
||||||
super().setup(routes, compression_level, debug=debug)
|
super().setup(routes, debug=debug)
|
||||||
self.override_methods()
|
self.override_methods()
|
||||||
|
|
Reference in a new issue