{"id":16370837,"url":"https://github.com/integralist/gophant-renderer","last_synced_at":"2026-03-08T22:30:17.074Z","repository":{"id":140161173,"uuid":"51657880","full_name":"Integralist/gophant-renderer","owner":"Integralist","description":"A static publishing package","archived":false,"fork":false,"pushed_at":"2016-02-14T00:20:57.000Z","size":9,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-12-31T13:43:37.614Z","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":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Integralist.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-02-13T17:56:20.000Z","updated_at":"2016-02-20T15:27:23.000Z","dependencies_parsed_at":"2023-04-07T13:04:11.067Z","dependency_job_id":null,"html_url":"https://github.com/Integralist/gophant-renderer","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/Integralist%2Fgophant-renderer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Integralist%2Fgophant-renderer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Integralist%2Fgophant-renderer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Integralist%2Fgophant-renderer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Integralist","download_url":"https://codeload.github.com/Integralist/gophant-renderer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239906772,"owners_count":19716581,"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-10-11T03:06:14.225Z","updated_at":"2026-03-08T22:30:17.035Z","avatar_url":"https://github.com/Integralist.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Gophant Renderer\n\nA static publishing package\n\n\u003e Ingest SQS messages, render content and store in S3 for easy lookup\n\n```bash\ngo run renderer.go # make sure you have you AWS keys exported\n```\n\n## Architecture\n\nGophant is built on the premise of producers (renderers) and consumers (brokers):\n\n![Gophant Architecture](https://cloud.githubusercontent.com/assets/180050/13029403/4cfb12f4-d283-11e5-9958-d996b6cb97ab.png)\n\n## Local setup\n\n### Creating Resources\n\nFirst thing we need to do is to create some fake services (SQS, DynamoDB, S3) for our renderer to utilise. In the real world this is handled by AWS, but for the purposes of running things locally we'll have to handle this ourselves manually.\n\n- `spurious-server start`\n- `spurious init`\n- `spurious start`\n\n\u003e Note: [Spurious](https://github.com/spurious-io/spurious) is required for the faking of AWS Services\n\n- `export AWS_ACCESS_KEY_ID=access; export AWS_SECRET_ACCESS_KEY=secret; go run local.go`\n\n\u003e DynamoDB is the only faked AWS service that requires exporting env vars.  \n\u003e It uses them to segregate the tables you create.  \n\u003e For your code (or Spurious Browser) to access your DynamoDB data,  \n\u003e you'll need to export/login using the same access/secret key values\n\n#### Output\n\nYou should see something like the following output when running `local.go` for the first time:\n\n```\nSQS Create Queue:\n{\n  QueueUrl: \"http://sqs.spurious.localhost:32768/producer\"\n}\n\nSQS Sent Message:\n{\n  MD5OfMessageBody: \"1356c67d7ad1638d816bfb822dd2c25d\",\n  MessageId: \"fe422b17-4c3c-4542-9330-7a253a034025\"\n}\n\nSequence Table:\n{\n  TableDescription: {\n    AttributeDefinitions: [{\n        AttributeName: \"key\",\n        AttributeType: \"S\"\n      }],\n    CreationDateTime: 2016-02-13 17:25:54 +0000 UTC,\n    ItemCount: 0,\n    KeySchema: [{\n        AttributeName: \"key\",\n        KeyType: \"HASH\"\n      }],\n    ProvisionedThroughput: {\n      NumberOfDecreasesToday: 0,\n      ReadCapacityUnits: 10,\n      WriteCapacityUnits: 10\n    },\n    TableName: \"sequencer\",\n    TableSizeBytes: 0,\n    TableStatus: \"ACTIVE\"\n  }\n}\n\nLookup Table:\n{\n  TableDescription: {\n    AttributeDefinitions: [{\n        AttributeName: \"component_key\",\n        AttributeType: \"S\"\n      },{\n        AttributeName: \"batch_version\",\n        AttributeType: \"N\"\n      }],\n    CreationDateTime: 2016-02-13 17:25:55 +0000 UTC,\n    ItemCount: 0,\n    KeySchema: [{\n        AttributeName: \"component_key\",\n        KeyType: \"HASH\"\n      },{\n        AttributeName: \"batch_version\",\n        KeyType: \"RANGE\"\n      }],\n    ProvisionedThroughput: {\n      NumberOfDecreasesToday: 0,\n      ReadCapacityUnits: 10,\n      WriteCapacityUnits: 10\n    },\n    TableName: \"lookup\",\n    TableSizeBytes: 0,\n    TableStatus: \"ACTIVE\"\n  }\n}\n\nFinished creating local resources\n```\n\n### Optional flags\n\nThere are flags you can use to configure the local setup (if you prefer not to use Spurious):\n\n- `-queue`: defaults to `producer`\n- `-region`: defaults to `eu-west-1`\n- `-s3-bucket`: defaults to `gophant`\n- `-s3-endpoint`: defaults to `spurious ports --json`\n- `-sqs-endpoint`: defaults to `spurious ports --json`\n- `-dynamo-endpoint`: defaults to `spurious ports --json`\n\n\u003e Note: with DynamoDB we default table names to `sequencer` and `lookup` \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fintegralist%2Fgophant-renderer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fintegralist%2Fgophant-renderer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fintegralist%2Fgophant-renderer/lists"}