flyweight
LINQ to DB
flyweight | LINQ to DB | |
---|---|---|
9 | 20 | |
503 | 2,860 | |
- | 0.5% | |
8.9 | 8.8 | |
1 day ago | 3 days ago | |
JavaScript | C# | |
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
LINQ to DB
- Upserting complex data models from an API into EF Core entities
-
LiteDB: A .NET embedded NoSQL database
Before checking this out, people might want to take a look through the issues and pull requests of which there are 500+ and 50+ respectively [1]. I was really optimistic about this project and it was headed in a great direction, but it's not in a production ready state, and it seems that the main guy behind it has decided to move onto other things. It's been about a year since there was any significant activity.
I just mention this because a lot of these little issues might only become more apparent after integrating the db into your project and so it can be a bit annoying. I ended up swapping to Linq2DB [1]. It's something, more or less, similar offering an ORM/LINQ type system as well as the ability to also use direct SQL if desired. But the neat thing is that it also uses a standardized API for the LINQ query language, so you can do things like swap from SQLite to PostgreSQL in one* line of code, so long as you're not using any provider specific extensions.
[1] - https://github.com/mbdavid/LiteDB
[2] - https://github.com/linq2db/linq2db
-
Flyweight: An ORM for SQLite
I had a positive experience with Linq2db? https://github.com/linq2db/linq2db
I mention because I had something of the opposite experience with it. It not only ended up yielding the correct queries, but I saw a significant increase in performance. And the neat thing about it, beyond ORM and linq-to-sql, is a common interface amongst providers - so you can do things like swap from SQLite to Postgres with 1 line* of code, so long as you're not using provider specific extensions.
-
.NET 6 - ORM vs Stored Procedures - Azure Functions + SQL Databases
Temporary tables are covered by linq2db. But better to show Stored Proc maybe your final query just needs several CTE which also supported by linq2db.
-
LINQ to SQL
check this out as an alternative... https://github.com/linq2db/linq2db
-
Expression trees for LINQ
My learning path was supporting linq2db, not short way. StackOverflow was original source to find something like, how to do if operator in Expression Tree, how to throw exception in Expression Tree, how to build dynamic filter, ect.
-
Dapper is it worth using now with the improvements in EF in dotnet 6?
Checkout linq2db No need for Dapper or EF with this library. I wouldn't want to miss it.
- What is the best PostgreSQL ORM tool for use in a .NET Framework 4.7 application?
-
SchemaTypist: Entity generator for Dapper and SqlKata
Why not linq2db? Faster than Dapper and has LINQ support.
-
EF Core is good for most things.
Probably you can understand why linq2db was born 15 years ago
What are some alternatives?
sequelts
Dapper - Dapper - a simple object mapper for .Net [Moved to: https://github.com/DapperLib/Dapper]
mayim - The *NOT* ORM hydrator
Entity Framework - EF Core is a modern object-database mapper for .NET. It supports LINQ queries, change tracking, updates, and schema migrations.
d2-playground - An online runner to play, learn, and create with D2, the modern diagram scripting language that turns text to diagrams.
MongoDB Repository pattern implementation
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.
SQLDelight - SQLDelight - Generates typesafe Kotlin APIs from SQL
RepoDb - A hybrid ORM library for .NET.
sqlitedao - Simple dao for sqlite for personal/desktop projects
NHibernate - NHibernate Object Relational Mapper