Tsarin bayan fage da ke ba SQL fifiko Matakin alfa

API na PostgreSQL masu sauri.
Ƙarancin amfani da ƙwaƙwalwa.

Wani sashe na Rust don Nginx da ke ba da damar kiran ayyukan PostgreSQL ta HTTP, kuma yake isar da sanarwar sauye-sauye ta WebSockets.

GitHub

Yadda pgxio ke rage ƙarin aikin sarrafawa

Zagayen sarrafa abubuwan da ke faruwa na Nginx

HTTP, WebSockets, da I/O na rumbun bayanai da ba ya hana sauran aiki ci gaba suna amfani da zagayen sarrafa abubuwan da ke faruwa na Nginx tare.

Haɗin sadarwar rumbun bayanai da ake sake amfani da su

Umarnin da aka shirya tun da wuri da aika umarni a jere ba tare da jiran amsar kowannensu ba suna rage maimaita aiki da yawan zirga-zirga zuwa rumbun bayanai da dawowa.

Ba a sake juyar da JSON zuwa sigar aikawa ba

Rubutun amsar JSONB na PostgreSQL yana wucewa ba tare da an canza shi ba. Kashe tantance bayanan da ake fitarwa kuma yana kauce wa nazarin tsarin JSON na amsar.

Isar da buƙatu ba tare da yin kwafi ba Na gwaji

Sigar da aka gina da libpq da aka yi wa gyara tana kawar da yin kwafin jikin buƙata zuwa Rust da libpq ga buƙatun da suka cika sharuɗɗa. Aron ma'ajiyar bayanai ta atomatik yana aiki ga manyan buƙatun da suka cika sharuɗɗa ta haɗin sadarwar rumbun bayanai da ke amfani da rubutu a fili ba tare da ɓoyewa ba. Sigogin da aka gina bisa tsarin yau da kullum suna ci gaba da yin kwafi.

Gwajin aikin da ke sama ya yi amfani da ma'ajiyoyin bayanai da aka yi wa kwafi. Amsoshi da TLS har yanzu suna buƙatar yin kwafi.

Yadda yake aiki

pgxio.confWani ɓangare na saituna
# HTTP endpoints
pgxio_endpoint list_tasks
  web.list_tasks read_only;

pgxio_endpoint create_task
  web.create_task;

# WebSocket subscription authorization
pgxio_stream tasks
  web.authorize_tasks;
  1. 01

    Rubuta ayyukan SQL

    Ayyukan SQL suna karɓa da mayar da JSON. Suna gudanar da tambayoyin rumbun bayanai, ƙa'idojin kasuwanci, da ba da izini.

  2. 02

    Bayar da hanyoyin shiga da aka fayyace

    Fayyace ayyukan da API ɗinka yake bayarwa. pgxio yana tantance JWT kuma yana kiran kowane aiki a cikin ma'amala.

  3. 03

    Yi rajista don karɓar sanarwar sauye-sauye

    Rajistar karɓar sanarwa ta WebSocket da aka ba izini tana aika alamun sauye-sauye. Manhajar abokin hulɗarka tana sake ɗauko kwafin halin yanzu ta HTTP.

Burauza / manhajar abokin hulɗaHTTP + WebSocket
pgxio a cikin NginxRust + libpq da ba ya hana sauran aiki ci gaba
PostgreSQLAyyuka + sanarwa

Rajistar karɓar sanarwa tana isar da alamun sauye-sauye, ba kundin abubuwan da suka faru da ake adanawa na dindindin ba. Bayan sake haɗuwa, manhajojin abokan hulɗa suna sake yin rajista kuma suna ɗauko sabon kwafin halin yanzu.

Gudanar a kan na'urarka

Gudanar da waɗannan umarni daga kwafin ma'ajiyar lambar pgxio da yake kan na'urarka. Za ka buƙaci Docker Compose da Python 3.9 ko sabuwar siga fiye da haka.

Rukunin ayyukan haɓaka manhaja da aka haɗa yana sauraron haɗin sadarwa a localhost. pgxio manhaja ce a matakin alfa; wannan saitin don gwadawa ne a kan na'urarka.

Tashar umarni · daga kwafin ma'ajiyar lambar pgxio ɗinka
bin/pgxio init
bin/pgxio up
TOKEN=$(bin/pgxio token alice)

curl http://localhost:8080/v1/create_task \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{"title":"Hello from pgxio"}'

curl http://localhost:8080/v1/list_tasks \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{}'