{"id":19263652,"url":"https://github.com/soundvibe/lasher","last_synced_at":"2025-04-21T18:31:43.478Z","repository":{"id":57737776,"uuid":"281102050","full_name":"soundvibe/lasher","owner":"soundvibe","description":"Lasher is an embeddable key-value store written in Java.","archived":false,"fork":false,"pushed_at":"2024-11-08T13:21:48.000Z","size":130,"stargazers_count":4,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-04-01T15:11:51.020Z","etag":null,"topics":["embedded","java","key-value","map","persistent","store","time-series"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/soundvibe.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":"2020-07-20T11:49:16.000Z","updated_at":"2022-09-01T21:23:51.000Z","dependencies_parsed_at":"2022-08-24T15:00:42.852Z","dependency_job_id":null,"html_url":"https://github.com/soundvibe/lasher","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soundvibe%2Flasher","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soundvibe%2Flasher/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soundvibe%2Flasher/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soundvibe%2Flasher/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/soundvibe","download_url":"https://codeload.github.com/soundvibe/lasher/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250111017,"owners_count":21376571,"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":["embedded","java","key-value","map","persistent","store","time-series"],"created_at":"2024-11-09T19:36:26.443Z","updated_at":"2025-04-21T18:31:43.020Z","avatar_url":"https://github.com/soundvibe.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"Lasher\n==========\n[![Maven Central](https://maven-badges.herokuapp.com/maven-central/net.soundvibe/lasher/badge.svg)](https://maven-badges.herokuapp.com/maven-central/net.soundvibe/lasher)\n[![Build Status](https://travis-ci.org/soundvibe/lasher.svg)](https://travis-ci.org/soundvibe/lasher)\n[![codecov](https://codecov.io/gh/soundvibe/lasher/branch/master/graph/badge.svg)](https://codecov.io/gh/soundvibe/lasher)\n\nLasher is an embeddable key-value store written in Java.\n\nWhat is Lasher?\n-------------------\nLasher is very lightweight embeddable persistent key-value store with very fast performance.\n\nIt is possible to store millions of elements in Lasher and use very little memory because all the data is persisted into memory mapped files.\n\nLasher could be used instead of any regular in-memory hashmap without sacrificing performance.\nIt is even faster than `ConcurrentHasMap\u003cK,V\u003e` in our benchmarks and uses much less memory.\n\nLasher stores consist of 2 binary files - index and data.\n\nLasherDB\n-------------------\nGeneral purpose key value store, partitioned by local shards.\n\nLasherMap\n-------------------\nLasherMap implements `ConcurrentMap\u003cK,V\u003e` for easier interoperability with java maps.\n\nTimeLash\n-------------------\nTimeLash is a time-series map backed by Lasher where data is partitioned by time intervals.\nIt supports very efficient data retention strategies.\nTo put or get values from the map, timestamp should be additionally provided, e.g.:\n\n```java\ntry (var timeLash = new TimeLash\u003c\u003e(\n    dir, //db directory\n    Duration.ofHours(6), //data retention duration\n    Serdes.STRING, //key serde\n    Serdes.STRING)) // value serde {\n    timeLash.put(\"foo\", \"bar\", Instant.now());\n    var bar = timeLash.get(\"foo\", Instant.now());\n}\n```\n\nArtifacts\n-----------\n\nLasher is available on Maven Central, hence just add the following dependency:\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003enet.soundvibe\u003c/groupId\u003e\n    \u003cartifactId\u003elasher\u003c/artifactId\u003e\n    \u003cversion\u003e0.0.3\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\nScala SBT\n```scala\nlibraryDependencies += \"net.soundvibe\" % \"lasher\" % \"0.0.3\"\n```\n\nContributions\n-----------\n\nAny helpful feedback is more than welcome. This includes feature requests, bug reports, pull requests, constructive feedback, etc.\n\nCopyright \u0026 License\n-------------------\n\nLasher © 2020 Linas Naginionis. Licensed under the terms of the Apache License, Version 2.0.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoundvibe%2Flasher","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsoundvibe%2Flasher","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoundvibe%2Flasher/lists"}