{"id":13721826,"url":"https://github.com/thekvs/esnappy","last_synced_at":"2026-02-02T16:19:03.268Z","repository":{"id":1429426,"uuid":"1598491","full_name":"thekvs/esnappy","owner":"thekvs","description":"Erlang bindings for Google's Snappy compression library.","archived":false,"fork":false,"pushed_at":"2016-06-20T09:38:16.000Z","size":2716,"stargazers_count":24,"open_issues_count":0,"forks_count":5,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-11-14T11:39:40.698Z","etag":null,"topics":["erlang","snappy-compression-library"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thekvs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2011-04-11T10:38:15.000Z","updated_at":"2018-05-22T07:06:56.000Z","dependencies_parsed_at":"2022-07-29T13:19:03.291Z","dependency_job_id":null,"html_url":"https://github.com/thekvs/esnappy","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thekvs%2Fesnappy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thekvs%2Fesnappy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thekvs%2Fesnappy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thekvs%2Fesnappy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thekvs","download_url":"https://codeload.github.com/thekvs/esnappy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252895492,"owners_count":21821169,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["erlang","snappy-compression-library"],"created_at":"2024-08-03T01:01:21.876Z","updated_at":"2026-02-02T16:19:03.233Z","avatar_url":"https://github.com/thekvs.png","language":"C++","funding_links":[],"categories":["General Libraries"],"sub_categories":[],"readme":"## Description\n\nThe **esnappy** library provides Erlang bindings to Google's\n[Snappy compression library](http://code.google.com/p/snappy/).\nIt uses separate OS thread for compression/decompression so it won't\nscrew up Erlang's VM scheduler while processing large data chunks.\n\n## Erlang Version\n\nThe **esnappy** library requires Erlang R14B or later.\n\n## Building\n\n[![Build Status](https://travis-ci.org/thekvs/esnappy.svg?branch=master)](https://travis-ci.org/thekvs/esnappy)\n\nYou have to have Snappy library installed on your system so that\ncompiler can link against it. You can also specify **ESNAPPY_INCLUDE_DIR**\nand **ESNAPPY_LIB_DIR** enviroment variables for better control of\npaths used to compile and link **esnappy** library.\n\n\u003cpre\u003e\n$ ESNAPPY_INCLUDE_DIR=/usr/local/include ESNAPPY_LIB_DIR=/usr/local/lib ./rebar compile\n$ ./rebar eunit\n\u003c/pre\u003e\n\n## Perfomance\n\n\u003cpre\u003e\nErlang R14B02 (erts-5.8.3) [source] [64-bit] [smp:4:4] [rq:4] [async-threads:0] [hipe] [kernel-poll:false]\n\nEshell V5.8.3  (abort with ^G)\n1\u003e code:add_path(\"ebin\").\ntrue\n2\u003e {ok, Data} = file:read_file(\"test/text.txt\").\n{ok,\u0026lt;\u0026lt;32,32,32,208,155,208,181,208,178,32,208,157,208,\n      184,208,186,208,190,208,187,208,176,208,181,208,\n      178,208,...\u0026gt;\u0026gt;}\n3\u003e {ok, Ctx} = esnappy:create_ctx().\n{ok,\u0026lt;\u0026lt;\u0026gt;\u0026gt;}\n4\u003e {ST, {ok, SCompressed}} = timer:tc(esnappy, compress, [Ctx, Data]).\n{46692,\n {ok,\u0026lt;\u0026lt;217,192,187,1,84,32,32,32,208,155,208,181,208,178,\n       32,208,157,208,184,208,186,208,190,208,187,...\u0026gt;\u0026gt;}}\n5\u003e {ZT, ZCompressed} = timer:tc(zlib, zip, [Data]).\n{493585,\n \u0026lt;\u0026lt;172,189,203,110,37,219,145,37,56,207,175,56,17,147,146,\n   10,78,126,64,196,128,227,4,106,212,104,52,...\u0026gt;\u0026gt;}\n6\u003e size(Data).\n3072089\n7\u003e size(SCompressed).\n1548017\n8\u003e size(ZCompressed).\n832898\n\u003c/pre\u003e\n\nNote the difference in execution time **46692** (Snappy) vs. **493585** (zlib).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthekvs%2Fesnappy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthekvs%2Fesnappy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthekvs%2Fesnappy/lists"}