Reference Material
These are links to prior art, related efforts and resources for
consideration in how Newt evolves as a prototype.
Data Modeling
SQL DB to REST JSON API
- PostgREST, build a REST JSON API
directly on top of Postgres. This is what started my think about Newt
prototype
- MRS,
MySQL REST Service
- sqlite2rest,
Automatically RESTful OpenAPI server from SQLite database
- Soul, A SQLite REST
and real time server built on NodeJS (wonder if it runs in Deno?)
SQL JSON support
- SQL dialects
- database guide, documentation
for various SQL dialects including Postgres and SQLite
- Postgres
- SQLite 3
Other approaches and
background
- Doing
More with Less: Orchestrating Serverless Applications without an
Orchestrator. with David Liu, Shadi Noghabi, and Sebastian Burckhardt.
(to appear) In proceedings of the 20th USENIX Symposium on Networked
Systems Design and Implementation (NSDI) 2023. Paper
- path-to-regexp
- URLPattern
at MDN
- URLPattern
at Chrome Developer site
- Flask
Route tutorial
- router.js
- Azure
application gateway routing
- React
Router
- Nextjs
routing
- dJango
routing
- HYDRA,
Hypermedia-Driven Web API
- HAL,
Hypertext Application Language
- JSON-LD
- Richardson
Maturity Model, used to evaluate RESTful-ness in JSON API
- HAR,
HTTP Archive Request
- GoJa, Pure Go
JavaScript engine
- HTTPie-go, A go
implementation of HTTPie, useful to debug API interactions
- Lama2, a plain
text powered rest client (not to be confused with Meta’s LLM)
- Go’s extended
html docs, HTML tokenizer and parser package
Go implementations
for unique identifiers
It appears it may be desirable when generating SQL code and web forms
to allow for the automatic creation of three object attributes as some
sort of minimally viable object, unique object id with created and
updated timestamps
{
"oid": "xxxxxxxxx",
"created": "timestamp value for object creation",
"updated": "timestamp, updates on change"
}
This could be implemented directory into the generated SQL or have an
Identifier service that sits in front of the DB JSON API.
- UUID, v4
UUID, go storage in Postgres, long for URL
- shortid
- shortuuid,
Python shortuuid package
- shortuuid, a
Port of the Python package to Go, algorithmically compatible with the
Python implementation, currently at v4 and still actively developed
(April 2024), see https://pkg.go.dev/github.com/lithammer/shortuuid/v4
- ulid, a logically
sortable unique identifier package, ported from the JavaScript package
implementing ulid
- Cuid2, a port of Cuid2 JavaScript implementation
- Sonyflake, a uid
inspired by Twitter’s snowflake
- Mongo
BSON ObjectID, Go implementation from Mongo’s go client library
- xid
Blog posts on identifiers
Web Components
If Newt shipped with a set of LAM oriented web component that could
allow for a more complex data model to be addressed by Newt. E.g. lists
of authors are a web component would probably have not just the name
fields but also identifiers like ORCID and ISNI attached to them.
Something worth exploring.
Internet Archives seems to be investing in the Lit component library heavily.