{"id":24196868,"url":"https://github.com/sebastianwebber/pgconfig-api","last_synced_at":"2025-06-18T18:04:21.525Z","repository":{"id":53478235,"uuid":"55808437","full_name":"sebastianwebber/pgconfig-api","owner":"sebastianwebber","description":"pgconfig.org API","archived":false,"fork":false,"pushed_at":"2022-12-07T23:41:38.000Z","size":199,"stargazers_count":11,"open_issues_count":5,"forks_count":3,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-06-18T18:03:53.813Z","etag":null,"topics":["pgconfig","pgconfig-api","python","rest-api","tornado"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sebastianwebber.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":"2016-04-08T20:40:59.000Z","updated_at":"2024-08-06T03:57:34.000Z","dependencies_parsed_at":"2023-01-25T00:15:55.488Z","dependency_job_id":null,"html_url":"https://github.com/sebastianwebber/pgconfig-api","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sebastianwebber/pgconfig-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebastianwebber%2Fpgconfig-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebastianwebber%2Fpgconfig-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebastianwebber%2Fpgconfig-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebastianwebber%2Fpgconfig-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sebastianwebber","download_url":"https://codeload.github.com/sebastianwebber/pgconfig-api/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebastianwebber%2Fpgconfig-api/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260606446,"owners_count":23035348,"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":["pgconfig","pgconfig-api","python","rest-api","tornado"],"created_at":"2025-01-13T19:38:32.977Z","updated_at":"2025-06-18T18:04:16.510Z","avatar_url":"https://github.com/sebastianwebber.png","language":"Python","readme":"# PGConfig API\n[![Donate](https://img.shields.io/badge/Donate-PayPal-blue.svg?style=flat-square\u0026maxAge=2592000)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=L2MUTTNAQ57KN)\n\nThis project it's API that [pgconfig.org](http://pgconfig.org) uses to calculate the tuning values and stuff.\n\n## Thanks\n\nThanks to [Chuck Boecking](http://www.chuckboecking.com), by sponsoring this tool. :)\n\n### How it works\n\nThe web interface ([pgconfig.org website](http://pgconfig.org) or just `UI`) access this api on the address [`https://api.pgconfig.org/v1/tuning/get-config`](https://api.pgconfig.org/v1/tuning/get-config).\n\nYou can call it from `curl`, eg:\n\n```bash\n$ curl 'https://api.pgconfig.org/v1/tuning/get-config'\n{\"data\": [{\"category\": \"memory_related\",\"description\": \"Memory Configuration\",\"parameters\": [{\"config_value\": \"512MB\",\"format\": \"Bytes\",\"name\": \"shared_buffers\"},{\"config_value\": \"2GB\",\"format\": \"Bytes\",\"name\": \"effective_cache_size\"},{\"config_value\": \"20MB\",\"format\": \"Bytes\",\"name\": \"work_mem\"},{\"config_value\": \"128MB\",\"format\": \"Bytes\",\"name\": \"maintenance_work_mem\"}]},{\"category\": \"checkpoint_related\",\"description\": \"Checkpoint Related Configuration\",\"parameters\": [{\"config_value\": \"512MB\",\"format\": \"Bytes\",\"name\": \"min_wal_size\"},{\"config_value\": \"2GB\",\"format\": \"Bytes\",\"name\": \"max_wal_size\"},{\"config_value\": 0.7,\"format\": \"Float\",\"name\": \"checkpoint_completion_target\"},{\"config_value\": \"15MB\",\"format\": \"Bytes\",\"name\": \"wal_buffers\"}]},{\"category\": \"network_related\",\"description\": \"Network Related Configuration\",\"parameters\": [{\"config_value\": \"*\",\"format\": \"String\",\"name\": \"listen_addresses\"},{\"config_value\": 100,\"format\": \"Decimal\",\"name\": \"max_connections\"}]}],\"jsonapi\": {\"version\": \"1.0\"},\"links\": {\"self\": \"http://api.pgconfig.org/v1/tuning/get-config\"},\"meta\": {\"arguments\": {},\"copyright\": \"PGConfig API\",\"version\": \"2.0 beta\"}}\n```\n\nWith a little formating, looks like this:\n\n```json\n{  \n   \"data\":[  \n      {  \n         \"category\":\"memory_related\",\n         \"description\":\"Memory Configuration\",\n         \"parameters\":[  \n            {  \n               \"config_value\":\"512MB\",\n               \"format\":\"Bytes\",\n               \"name\":\"shared_buffers\"\n            },\n            {  \n               \"config_value\":\"2GB\",\n               \"format\":\"Bytes\",\n               \"name\":\"effective_cache_size\"\n            },\n            {  \n               \"config_value\":\"20MB\",\n               \"format\":\"Bytes\",\n               \"name\":\"work_mem\"\n            },\n            {  \n               \"config_value\":\"128MB\",\n               \"format\":\"Bytes\",\n               \"name\":\"maintenance_work_mem\"\n            }\n         ]\n      },\n      {  \n         \"category\":\"checkpoint_related\",\n         \"description\":\"Checkpoint Related Configuration\",\n         \"parameters\":[  \n            {  \n               \"config_value\":\"512MB\",\n               \"format\":\"Bytes\",\n               \"name\":\"min_wal_size\"\n            },\n            {  \n               \"config_value\":\"2GB\",\n               \"format\":\"Bytes\",\n               \"name\":\"max_wal_size\"\n            },\n            {  \n               \"config_value\":0.7,\n               \"format\":\"Float\",\n               \"name\":\"checkpoint_completion_target\"\n            },\n            {  \n               \"config_value\":\"15MB\",\n               \"format\":\"Bytes\",\n               \"name\":\"wal_buffers\"\n            }\n         ]\n      },\n      {  \n         \"category\":\"network_related\",\n         \"description\":\"Network Related Configuration\",\n         \"parameters\":[  \n            {  \n               \"config_value\":\"*\",\n               \"format\":\"String\",\n               \"name\":\"listen_addresses\"\n            },\n            {  \n               \"config_value\":100,\n               \"format\":\"Decimal\",\n               \"name\":\"max_connections\"\n            }\n         ]\n      }\n   ],\n   \"jsonapi\":{  \n      \"version\":\"1.0\"\n   },\n   \"links\":{  \n      \"self\":\"http://api.pgconfig.org/v1/tuning/get-config\"\n   },\n   \"meta\":{  \n      \"arguments\":{  \n\n      },\n      \"copyright\":\"PGConfig API\",\n      \"version\":\"2.0 beta\"\n   }\n}\n```\n\nBasically, the important data are in the `data` node, grouped by categories, just like in the `UI`. :)\n\nA important thing about this is that you can format the output displayed more conveniently, only informing the `format=conf` parameters, eg:\n\n```bash\n$ curl 'https://api.pgconfig.org/v1/tuning/get-config?format=conf'\n# Generated by PGConfig 2.0 beta\n## http://pgconfig.org\n\n# Memory Configuration\nshared_buffers = 512MB\neffective_cache_size = 2GB\nwork_mem = 20MB\nmaintenance_work_mem = 128MB\n\n# Checkpoint Related Configuration\nmin_wal_size = 512MB\nmax_wal_size = 2GB\ncheckpoint_completion_target = 0.7\nwal_buffers = 15MB\n\n# Network Related Configuration\nlisten_addresses = '*'\nmax_connections = 100\n```\n\nAnother options for the `format` parameters are `json` (the default value) and `alter_system`, take a look:\n\n```bash\n$ curl 'https://api.pgconfig.org/v1/tuning/get-config?format=alter_system'\n-- Generated by PGConfig 2.0 beta\n---- http://pgconfig.org\n\n-- Memory Configuration\nALTER SYSTEM SET shared_buffers TO '512MB';\nALTER SYSTEM SET effective_cache_size TO '2GB';\nALTER SYSTEM SET work_mem TO '20MB';\nALTER SYSTEM SET maintenance_work_mem TO '128MB';\n\n-- Checkpoint Related Configuration\nALTER SYSTEM SET min_wal_size TO '512MB';\nALTER SYSTEM SET max_wal_size TO '2GB';\nALTER SYSTEM SET checkpoint_completion_target TO '0.7';\nALTER SYSTEM SET wal_buffers TO '15MB';\n\n-- Network Related Configuration\nALTER SYSTEM SET listen_addresses TO '*';\nALTER SYSTEM SET max_connections TO '100';\n```\n\nIn short: to change the output, all you need is to do it's put the parameters in the URL.\n\n### Available parameters\n\nThe list below lists the available parameters:\n\n\u003ctable class=\"table table-striped table-bordered\"\u003e\n    \u003cthead\u003e\n        \u003ctr\u003e\n            \u003cth\u003eParameter\u003c/th\u003e\n            \u003cth\u003ePossible values\u003c/th\u003e\n            \u003cth\u003eDefault Value\u003c/th\u003e\n            \u003cth\u003eDescription\u003c/th\u003e\n        \u003c/tr\u003e\n    \u003c/thead\u003e\n    \u003ctbody\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ccode\u003epg_version\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003efrom \u003ccode\u003e9.0\u003c/code\u003e version until \u003ccode\u003e9.6\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003e9.6\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eSets the PostgreSQL version\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ccode\u003etotal_ram\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eany value above \u003ccode\u003e1GB\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003e2GB\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eTotal memory \u003cstrong\u003ededicated\u003c/strong\u003e to the PostgreSQL.\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ccode\u003emax_connections\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eany value above \u003ccode\u003e1\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003e100\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003cstrong\u003eexpected\u003c/strong\u003e number of connections\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ccode\u003eenvironment_name\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eWEB\u003c/code\u003e, \u003ccode\u003eOLTP\u003c/code\u003e, \u003ccode\u003eDW\u003c/code\u003e, \u003ccode\u003eMixed\u003c/code\u003e and \u003ccode\u003eDesktop\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eWEB\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eSets the environment that the server will run (more details below)\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ccode\u003eos_type\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eLinux\u003c/code\u003e, \u003ccode\u003eWindows\u003c/code\u003e and \u003ccode\u003eUnix\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003eLinux\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eSets the type of operating system used\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ccode\u003earch\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003ex86-64\u003c/code\u003e and \u003ccode\u003ei686\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003ex86-64\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eSets the server architecture\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ccode\u003eformat\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003ejson\u003c/code\u003e, \u003ccode\u003econf\u003c/code\u003e and \u003ccode\u003ealter_system\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003ejson\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003echanges the output format\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ccode\u003eshow_doc\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003etrue\u003c/code\u003e and \u003ccode\u003efalse\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003efalse\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eShows the documentation (valid only for the \u003ccode\u003ejson\u003c/code\u003e format)\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ccode\u003einclude_pgbadger\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003etrue\u003c/code\u003e and \u003ccode\u003efalse\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003efalse\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eAdd the settings to enable pgbadger\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ccode\u003elog_format\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003estderr\u003c/code\u003e, \u003ccode\u003ecsvlog\u003c/code\u003e and \u003ccode\u003esyslog\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ccode\u003estderr\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eSets de default log format for the pgbadger. (Used only when \u003ccode\u003einclude_pgbadger\u003c/code\u003e is \u003ccode\u003etrue\u003c/code\u003e)\u003c/td\u003e\n        \u003c/tr\u003e\n    \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003e **Important** Don't forget, when setting the `total_ram` parameter, set the value like the expression `[0-9]{1,}GB`, eg: `4GB`.\n\n#### About the environment\n\nThe list below explains a bit more about the environments:\n\n\u003ctable class=\"table table-bordered\"\u003e\n    \u003cthead\u003e\n        \u003ctr\u003e\n            \u003cth\u003eName\u003c/th\u003e\n            \u003cth\u003eDescription\u003c/th\u003e\n            \u003cth\u003eUse cases\u003c/th\u003e\n        \u003c/tr\u003e\n    \u003c/thead\u003e\n    \u003ctbody\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ccode\u003eWEB\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eGeneral web applications\u003c/td\u003e\n            \u003ctd\u003eweb applications like portal or corporate application\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ccode\u003eOLTP\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eApplications with a large volume of transactions\u003c/td\u003e\n            \u003ctd\u003eApplications of ERP type or big corporate systems with a lot of simultaneous transactions\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ccode\u003eDW\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eDataware house applications\u003c/td\u003e\n            \u003ctd\u003eGeneral Business Inteligence applications\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ccode\u003eMixed\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eEnvironments who share the database and the application in the same server\u003c/td\u003e\n            \u003ctd\u003eSmall applications, typically running on the web\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ccode\u003eDesktop\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003eDevelopment environment\u003c/td\u003e\n            \u003ctd\u003edevelopment machine, support or pre-sales\u003c/td\u003e\n        \u003c/tr\u003e\n    \u003c/tbody\u003e\n\u003c/table\u003e\n\n\n#### Full example\n\nThe example below its used by the `UI`:\n\n```bash\n$ curl 'https://api.pgconfig.org/v1/tuning/get-config?environment_name=WEB\u0026format=alter_system\u0026include_pgbadger=true\u0026log_format=stderr\u0026max_connections=100\u0026pg_version=9.6\u0026total_ram=2GB'\n```\n\n### How the values are calculated?\n\nIn an attempt to make the process simpler, i created a API context to list the rules. It can be access by the URL below:\n\n- [/v1/tuning/get-rules](https://api.pgconfig.org/v1/tuning/get-rules) \n\n\u003e **Important:** This context supports the follow parameters: `os_type`, `arch` e `environment_name`. \n\nThe fields who contains details how each parameter are calculated are `formula` and `max_value`, eg:\n\n```json\n...\n\"format\": \"Bytes\",\n\"formula\": \"TOTAL_RAM / 4\",\n\"max_value\": \"2047MB\",\n\"name\": \"shared_buffers\"\n...\n```\n\n\u003e Note that the values are influenced by the filters mentioned above.\n\n#### Calling the `get-rules` context\n\nI recommend that you open the URL below on the browser for easy viewing (or just [format the json](https://jsonformatter.curiousconcept.com/)):\n\n```bash\ncurl 'https://api.pgconfig.org/v1/tuning/get-rules?os_type=Windows\u0026arch=i686\u0026environment_name=OLTP'\n```\n\n### Another API Options\n\n\u003ctable class=\"table table-striped table-bordered\"\u003e\n    \u003cthead\u003e\n        \u003ctr\u003e\n            \u003cth\u003eAddress\u003c/th\u003e\n            \u003cth\u003eDescription\u003c/th\u003e\n            \u003cth\u003eOutput example\u003c/th\u003e\n        \u003c/tr\u003e\n    \u003c/thead\u003e\n    \u003ctbody\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"https://api.pgconfig.org/v1/tuning/get-config-all-environments\"\u003e\u003ccode\u003e/v1/tuning/get-config-all-environments\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003eshow rules for all environments\u003c/td\u003e\n            \u003ctd\u003e\u003cpre\u003e\u003ccode class=\"language-json\"\u003e\u003c/code\u003e...\n\"data\": [\n    {\n    \"configuration\": [..],\n    \"environment\": \"WEB\"\n    },\n    {\n    \"configuration\": [..],\n    \"environment\": \"OLTP\"\n    },\n    {\n    \"configuration\": [..],\n    \"environment\": \"DW\"\n    },\n    {\n    \"configuration\": [..],\n    \"environment\": \"Mixed\"\n    },\n    {\n    \"configuration\": [..],\n    \"environment\": \"Desktop\"\n    }\n]\n...\u003c/pre\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"https://api.pgconfig.org/v1/tuning/list-environments\"\u003e\u003ccode\u003e/v1/tuning/list-environments\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003eShow all environments\u003c/td\u003e\n            \u003ctd\u003e\u003cpre\u003e\u003ccode class=\"language-json\"\u003e\u003c/code\u003e...\n\"data\": [\n    \"WEB\",\n    \"OLTP\",\n    \"DW\",\n    \"Mixed\",\n    \"Desktop\"\n],\n...\u003c/pre\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"https://api.pgconfig.org/v1/generators/pgbadger/get-config\"\u003e\u003ccode\u003e/v1/generators/pgbadger/get-config\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003eShow the pgbadger configurations (accepts the \u003ccode\u003eformat\u003c/code\u003e parameter)\u003c/td\u003e\n            \u003ctd\u003e\u003cpre\u003e\u003ccode class=\"language-json\"\u003e\u003c/code\u003e...\n\"data\": [\n    {\n    \"category\": \"log_config\",\n    \"description\": \"Logging configuration for pgbadger\",\n    \"parameters\": [\n        {\n        \"config_value\": \"on\",\n        \"name\": \"logging_collector\"\n        },\n        {\n        \"config_value\": \"on\",\n        \"name\": \"log_checkpoints\"\n        },\n        {\n        \"config_value\": \"on\",\n        \"name\": \"log_connections\"\n        },\n        {\n        \"config_value\": \"on\",\n        \"name\": \"log_disconnections\"\n        },\n        {\n        \"config_value\": \"on\",\n        \"name\": \"log_lock_waits\"\n        },\n        {\n        \"config_value\": \"0\",\n        \"name\": \"log_temp_files\"\n        },\n        {\n        \"config_value\": \"C\",\n        \"format\": \"String\",\n        \"name\": \"lc_messages\"\n        },\n        {\n        \"comment\": \"Adjust the minimum time to collect data\",\n        \"config_value\": \"10s\",\n        \"format\": \"Time\",\n        \"name\": \"log_min_duration_statement\"\n        },\n        {\n        \"config_value\": \"0\",\n        \"name\": \"log_autovacuum_min_duration\"\n        }\n    ]\n},\n...\u003c/pre\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n    \u003c/tbody\u003e\n\u003c/table\u003e\n\nAnother contexts are being developed.","funding_links":["https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=L2MUTTNAQ57KN"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsebastianwebber%2Fpgconfig-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsebastianwebber%2Fpgconfig-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsebastianwebber%2Fpgconfig-api/lists"}