{"id":19928496,"url":"https://github.com/dinowernli/almanac","last_synced_at":"2025-03-01T11:16:37.828Z","repository":{"id":74059403,"uuid":"109618510","full_name":"dinowernli/almanac","owner":"dinowernli","description":"A distributed log storage and serving system","archived":false,"fork":false,"pushed_at":"2018-03-05T17:09:46.000Z","size":178,"stargazers_count":2,"open_issues_count":12,"forks_count":1,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-01-12T00:48:19.176Z","etag":null,"topics":["almanac","gcs","golang","log","logging","s3"],"latest_commit_sha":null,"homepage":"","language":"Go","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/dinowernli.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-11-05T21:36:35.000Z","updated_at":"2019-04-02T10:54:37.000Z","dependencies_parsed_at":null,"dependency_job_id":"134f90d6-7250-4106-bcff-79eacf44cfe4","html_url":"https://github.com/dinowernli/almanac","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/dinowernli%2Falmanac","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dinowernli%2Falmanac/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dinowernli%2Falmanac/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dinowernli%2Falmanac/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dinowernli","download_url":"https://codeload.github.com/dinowernli/almanac/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241355038,"owners_count":19949292,"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":["almanac","gcs","golang","log","logging","s3"],"created_at":"2024-11-12T22:37:26.038Z","updated_at":"2025-03-01T11:16:37.801Z","avatar_url":"https://github.com/dinowernli.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# almanac\n\n[![Build Status](https://travis-ci.org/dinowernli/almanac.svg?branch=master)](https://travis-ci.org/dinowernli/almanac)\n[![Go Report Card](https://goreportcard.com/badge/github.com/dinowernli/almanac)](https://goreportcard.com/report/github.com/dinowernli/almanac)\n\nA distributed log storage and serving system.\n\nDesign goals:\n* Easy to deploy on cloud infrastructure such as GCP or AWS.\n* Minimal operational burden, i.e., deployments should be easy to upgrade, restart, modify, etc.\n* System cost scales with usage rather than uptime, making the system viable for small and large deployments.\n* Does not require operating a resilient and fault-tolerant storage system.\n\n## Design\n\nThe design doc for the system can be found [here](https://docs.google.com/document/d/1yVTRtSZQ2ulSV9CGwExn2l2E2kJqyssCMB7ZM7FNhnc/edit). As parts of the design go from being under discussion to being more consolidated, the design will gradually move into markdown in this repo.\n\n## Building and running\n\nIf you have a working go environment, you will need to run the following as one-time setup:\n\n* `./tools/fetch-deps.sh`\n* `dep ensure`\n\n### Running the demo\n\nRun the demo binary by executing:\n\n`go run ./cmd/almanac/almanac.go`\n\nThis will start a single-process cluster and will print the locations of a few relevant web pages which can be used to play around manually. By default, the demo runs against an in-memory storage implementation. In order to use an actual GCS bucket, execute:\n\n`GOOGLE_APPLICATION_CREDENTIALS=\u003cpath\u003e go run ./cmd/almanac/almanac.go --storage=gcs --storage.gcs.bucket=\u003cbucket\u003e`\n\n### Running tests\n\nTo run all the tests, execute:\n\n`go test ./...`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdinowernli%2Falmanac","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdinowernli%2Falmanac","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdinowernli%2Falmanac/lists"}