flyweight
kysely
flyweight | kysely | |
---|---|---|
9 | 26 | |
503 | 9,317 | |
- | 3.2% | |
8.9 | 9.2 | |
1 day ago | 4 days ago | |
JavaScript | TypeScript | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
flyweight
- Flyweight: A Node.js ORM Specifically for SQLite
-
Show HN: Quietone – search audio and video by transcript
Hey. This is my first electron app. It is called Quietone and I just thought it would be cool to navigate and manipulate videos by their transcript because searching through videos for the things I was looking for was very slow otherwise.
I used whisper.cpp to do the transcribing. It has held up really well. The tiny model (the fastest one) can transcribe 2 hours of video in a couple of minutes on my m2 mac mini and the accurate of even the tiny model is pretty good.
I used Electron Forge to package the app for different operating systems and distribution channels. There are no guides on the internet on how to do that properly so that took quite a bit of time to figure out.
At multiple stages I had to look through source code of Electron Forge's dependencies to figure out how I was supposed to use it to correctly sign the app for the mac app store.
I made this app using the tools I like to use, which is not very typical. I use straight javascript, no transpiling, and I wrote every single library myself from the ORM https://github.com/thebinarysearchtree/flyweight to the front-end framework, which is a thin wrapper over web components.
Oh yeah, Electron recently started supporting esm, but Electron Forge doesn't fully support it so I had to use esbuild to compile to cjs just for the packaging step.
I use events to make everything change in real-time in the UI. Umm... oh yeah I did include yt-dlp features but had to remove that for the store versions.
It is available on the mac store, and soon on the windows store. There is also a trial you can download. The windows store experience is not very polished compared to the mac store. I was amazed that there are humans reviewers looking through everything I upload. hah.
Anyway, I have to go find a job now and hope my username doesn't check out. Bye. Thanks for reading my blog.
-
Is TypeScript actually worth It?
I wrote https://github.com/thebinarysearchtree/flyweight in JavaScript, not TypeScript. It generates TypeScript declaration files as it types SQL, which helps with intellisense support in VSCode. That is the only reason I use TypeScript.
I don't like TypeScript though, and would never write anything in it. I have a long history with C# and I came to conclusions about this topic a long time ago. I just prefer writing JavaScript, it is more fun and more productive.
Flyweight is quite a complex library. It parses arbitrarily complex SQL. This is more complex than most of the things people work on and claim they need static typing. It isn't millions of lines of code, but often those codebases aren't complex, they are just many independent components that in themselves are not that complex.
The amount of time I spend having to update the TypeScript aspect of my library is really quite annoying. Also, with regards to your point about libraries not including type information - this is also true for the actual native APIs in the browser and so on as well. For example, TypeScript doesn't recognise the "indices" property of regular expression matches.
- GitHub - thebinarysearchtree/flyweight: An ORM for SQLite
- Flyweight: An ORM for SQLite
kysely
-
Show HN: Tsynamo – Type-friendly DynamoDB query builder for TypeScript
Hello HN! I was recently introduced to Kysely (https://github.com/kysely-org/kysely), a type-safe Typescript SQL query builder, and instantly fell in love! I got inspired and wanted to make something similar for AWS DynamoDB.
Thus, I developed Tsynamo! Instead of calling it type-safe, I decided to go with type-friendly, because the library is still in an early stage, and is not 100% type-safe.
Under the hood, Tsynamo compiles the built queries into AWS SDK v3 commands. I feel that Tsynamo simplifies the AWS SDK API quite a lot since the developer doesn't have to mess around with condition/filter expressions or attribute names/values themselves, and as a bonus gets autocompletion for building the queries!
There's also a playground to test it out in your browser: https://try.tsynamo.dev. It might not have the most up-to-date API of the library in use yet, but you can get the library's main idea from there.
Since the project is still in its early stages, it doesn't yet have 100% support for all DynamoDB features, like querying indexes. The next steps will be increasing the support coverage and perhaps adding automatic type generation as inspired by kysely-codegen (https://github.com/RobinBlomberg/kysely-codegen).
Would love to get some feedback, thanks in advance!
-
Flyweight: A Node.js ORM Specifically for SQLite
How does this compare with my current favorite lite sqlite wrapper kysely? https://kysely.dev/
-
ORMs are nice but they are the wrong abstraction
ORMs suck, but raw SQL embedded in your code sucks too.
This might be good time to plug my TypeScript non-ORM: https://jawj.github.io/zapatos/.
I should say I also like what I've seen of https://kysely.dev/ and https://pgtyped.dev/.
-
NextJs and Kysely
As we can see using Kysely with Nextjs is very simple, and it allows us to create queries in a simple way, create tables, create migrations, transactions, etc.
- Kysely – type-safe TypeScript SQL query builder
-
Drizzle is just as unready for prime-time as Prisma, what else is there?
I've switched to kysely (https://kysely.dev) to just build SQL instead and it's nice to have full SQL access but still be type safe to my schema. Enjoying it so far.
- An effective way to build a heavy CRUD Rest API?
- any typescript users, that'd be interested in using oracledb with kysely (the type-safe query builder)?
-
I Hate NestJS
Kysely looks like the thing most people would want. It's not a full ORM though - just a well-typed query builder.
https://kysely.dev/
-
Database Review: Top Five Missing Features from Database APIs
Kysely
What are some alternatives?
sequelts
drizzle-orm - Headless TypeScript ORM with a head. Runs on Node, Bun and Deno. Lives on the Edge and yes, it's a JavaScript ORM too 😅
mayim - The *NOT* ORM hydrator
Prisma - Next-generation ORM for Node.js & TypeScript | PostgreSQL, MySQL, MariaDB, SQL Server, SQLite, MongoDB and CockroachDB
d2-playground - An online runner to play, learn, and create with D2, the modern diagram scripting language that turns text to diagrams.
Knex - A query builder for PostgreSQL, MySQL, CockroachDB, SQL Server, SQLite3 and Oracle, designed to be flexible, portable, and fun to use.
rescript-compiler - The compiler for ReScript.
TypeORM - ORM for TypeScript and JavaScript. Supports MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle, SAP Hana, WebSQL databases. Works in NodeJS, Browser, Ionic, Cordova and Electron platforms.
LINQ to DB - Linq to database provider.
prisma-kysely - 🪄 Generate Kysely types directly from your Prisma schema!
SQLDelight - SQLDelight - Generates typesafe Kotlin APIs from SQL
Sequelize - Feature-rich ORM for modern Node.js and TypeScript, it supports PostgreSQL (with JSON and JSONB support), MySQL, MariaDB, SQLite, MS SQL Server, Snowflake, Oracle DB (v6), DB2 and DB2 for IBM i.