{"id":20852722,"url":"https://github.com/ninesstack/lazyraster","last_synced_at":"2025-03-12T13:11:48.176Z","repository":{"id":231019221,"uuid":"627902417","full_name":"NinesStack/lazyraster","owner":"NinesStack","description":"Just in time PDF page rendering service with multiple storage backends and file caching","archived":false,"fork":false,"pushed_at":"2023-04-14T13:34:32.000Z","size":1797,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-19T06:26:46.612Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NinesStack.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}},"created_at":"2023-04-14T13:01:03.000Z","updated_at":"2023-04-14T13:34:55.000Z","dependencies_parsed_at":"2024-04-02T04:08:00.971Z","dependency_job_id":null,"html_url":"https://github.com/NinesStack/lazyraster","commit_stats":null,"previous_names":["ninesstack/lazyraster"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NinesStack%2Flazyraster","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NinesStack%2Flazyraster/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NinesStack%2Flazyraster/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NinesStack%2Flazyraster/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NinesStack","download_url":"https://codeload.github.com/NinesStack/lazyraster/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243222186,"owners_count":20256229,"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":[],"created_at":"2024-11-18T03:18:43.481Z","updated_at":"2025-03-12T13:11:48.140Z","avatar_url":"https://github.com/NinesStack.png","language":"Go","readme":"Lazyraster\n==========\n\n[![](https://travis-ci.org/Nitro/lazyraster.svg?branch=master)](https://travis-ci.org/Nitro/lazyraster)\n\nA caching PDF rasterizer that uses a filecache and a hashring to distribute load.\n\nMuPDF is the PDF engine that drives the rasterizer.\n\nLicense Restriction\n-------------------\n\nThis project is released under an [MIT license](LICENSE), but it relies on the AGPL code from [lazypdf](https://github.com/Nitro/lazypdf). Therefore, running it must comply with the terms and conditions from [this license](https://github.com/Nitro/lazypdf/blob/master/LICENSE). Sorry about that!\n\nBuilding It\n-----------\n\n**You MUST first install and build [LazyPdf](https://github.com/Nitro/lazypdf)**\n\nThis requires some C library dependencies that are not vendored in this\nproject. Install it in the correct location in your `GOPATH` so that it\ncan be found in the correct location when building this project.\n\nOnce that is installed, if you have not already, you will need to install\nall of the dependencies in `vendor/`. This project uses the `dep` tool to manage\ndependencies. You must have that installed:\n```\ngo get github.com/golang/dep/cmd/dep\n```\n\nInstalling the dependencies is:\n```\ndep ensure\n```\n\nYou can then build this project builds with a simple `go build`.\n\nRunning It\n----------\n\nSimply call the executable. By default, it will run on port 8000 and serve pdfs\nlocated in the current directory. Configuration is done using environment\nvariables. These include the following:\n\n * `RASTER_BASE_DIR`: The location where cached files are to be stored and served (default `.`)\n * `RASTER_HTTP_PORT`: The port to listen on for HTTP connections (default `8000`)\n * `RASTER_ADVERTISE_HTTP_PORT`: The advertised host port which gets mapped to RASTER_HTTP_PORT (default `8000`)\n * `RASTER_AWS_REGION`: The AWS Region fallback to use when S3 region lookup fails (default `us-west-1`)\n * `RASTER_CLUSTER_SEEDS`: The seeds to use to start the gossip ring\n * `RASTER_CACHE_SIZE`: The number of file objects to cache on disk at any one time. (default `512`)\n * `RASTER_REDIS_PORT`: The port on which to serve Redis protocol traffic (default `6379`)\n * `RASTER_CLUSTER_NAME`: The name of the Memberlist cluster (default `default`)\n * `RASTER_RING_TYPE`: Use `sidecar` or `memberlist` backing for hash ring? (default: `sidecar`)\n * `RASTER_ADVERTISE_MEMBERLIST_HOST`: The IP / hostname advertised by Memberlist\n * `RASTER_ADVERTISE_MEMBERLIST_PORT`: The port advertised by Memberlist (default `7946`)\n * `RASTER_SIDECAR_URL`: The Sidecar state URL (default: `http://192.168.168.168:7777/api/state.json`)\n * `RASTER_SIDECAR_SERVICE_NAME`: The name to lookup in Sidecar when using Sidecar backing (default `lazyraster`)\n * `RASTER_SIDECAR_SERVICE_PORT`: The port to lookup in Sidecar when using Sidecar backing (default `10110`)\n * `RASTER_URL_SIGNING_SECRET`: A secret to use when validating signed URLs (default: `deadbeef`). Set it to empty string to disable signature validation.\n * `RASTER_RASTER_CACHE_SIZE`: The number of Rasterizer objects to cache in memory at any one time (default `20`)\n * `RASTER_RASTER_BUFFER_SIZE`: The maximum number of raster requests to queue (default `10`)\n * `RASTER_LOGGING_LEVEL`: The cut off level for log messages. (`debug`, `info`, `warn`, `error`, default `info`)\n\nIn addition, the AWS APIs will require authorization in the form of the standard\nAWS environment variables:\n\n * `AWS_ACCESS_KEY_ID`\n * `AWS_SECRET_ACCESS_KEY`\n\nIf you are a New Relic customer and wish to monitor this using New Relic's\nservice, the service includes the\n[Gorelic](https://github.com/yvasiyarov/gorelic) platform agent.  This is\ncurrently used in place of the New Relic go agent due to [major licensing\nissues](https://github.com/newrelic/go-agent/issues/45) with the current Go\nagent. You may trigger the use of the New Relic agent by starting the service\nwith:\n\n * `NEW_RELIC_LICENSE_KEY`: the value is your current license key.\n * `SERVICE_NAME`: the name of the application in New Relic (e.g. 'foo-service')\n * `ENVIRONMENT_NAME`: appended to `SERVICE_NAME` (e.g. 'foo-service-prod')\n\nLocal Development\n-----------------\n\nIf you are running this locally for development purposes, you will probably\nwant to use the following options to get started:\n\n```bash\n$ RASTER_RING_TYPE=memberlist RASTER_LOGGING_LEVEL=debug ./lazyraster\n```\n\nThis will use the Memberlist clustering library and not require an external\nSidecar service discovery system. It will also enable debug logging level which\ncan help in understanding where things went wrong.\n\nCopyright\n---------\n\nCopyright (c) 2017-2018 Nitro Software.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fninesstack%2Flazyraster","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fninesstack%2Flazyraster","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fninesstack%2Flazyraster/lists"}