Skip to content

codr7/tyred

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 

Repository files navigation

Typed Relational Database access

Introduction

tyred is the culmination of more than 20 years research into finding better ways of interfacing relational databases with general purpose programming languages.

I largely hold this post responsible. It's a long read, but well worth the effort if you find the subject interesting.

At the time, I was already neck deep into a multi mloc commercial reservation system based built with an exotic mix of raw SQL, various more or less misguided attempts at adding custom ORM abstractions and Borland Delphi's BDE components.

I've written a ton of implementations in different languages over the years. Some made it all the way into production, which inevitably lead to further refinements of the design.

Donations

If you would like to see this project succeed, all contributions are welcome.

I've decided to release the project using an open license to benefit as many as possible, because I believe knowledge should be shared freely. But I also believe in compensation for creators; and the less economic pressure I have to deal with, the more time and energy I can put into the project.

The repository is set up for sponsoring via Stripe and Liberapay, alternatively you may use BTC (bitcoin:18k7kMcvPSSSzQtJ6hY5xxCt5U5p45rbuh) or ETH (0x776001F33F6Fc07ce9FF70187D5c034DCb429811).

Design

Rather than mapping concepts between the two domains, the general idea is to bridge ideas from the database into the app language; tables, columns, constraints, indexes, records, queries etc.

The database is defined inside the app, which enables re-using the definition to generate queries, CRUD endpoints etc.

The framework automagically tracks what data has already been stored at record/column level, as well as emulate nested transactions using savepoints.

Implementations

The following projects implement the tyred framework in different languges, some are more complete than others. Most work currently happens in tyred-java. The goal is to gradually consolidate into semi-compatible production ready implementations.

Work

Should you find yourself involved in a software project with interesting non-GenAI challenges and in need of a creative developer/tech/team lead with 26 years experience, don't hesitate to get in touch.

About

Typed Relational Database access

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published