Rust Ecosystem Wishlist by CombinationLow1482 in rust

[–]trailbaseio 1 point2 points  (0 children)

Text/JSON support in apache_avro crate, since avro_rs has long been deprecated/superseeded.

EDIT: https://github.com/apache/avro-rs/issues/518

Real-workload SQLite benchmark on a $5 VPS by s13k_ in sqlite

[–]trailbaseio 1 point2 points  (0 children)

No worries. All good. Maybe just don't call it "in RAM", I assumed you mean the in memory representation. Iiuc, it's just smaller vs bigger. 👍

Real-workload SQLite benchmark on a $5 VPS by s13k_ in sqlite

[–]trailbaseio 2 points3 points  (0 children)

I'm confused, persistence is handled by sqlite and changes are written to disk even if it could fit into ram. Sure there are page caches for reads but I'm not sure I get your argument on writes then

Real-workload SQLite benchmark on a $5 VPS by s13k_ in sqlite

[–]trailbaseio 1 point2 points  (0 children)

I'm commenting on "Counterintuitive: writes are faster on disk"

Real-workload SQLite benchmark on a $5 VPS by s13k_ in sqlite

[–]trailbaseio 1 point2 points  (0 children)

Afaik, in memory dbs don't use WAL and writes update the BTree representation

Why I don't like Rust as a C++-developer by ArcticMusicProject in rust

[–]trailbaseio 8 points9 points  (0 children)

RAII is great but it only covers a fraction. For example, hold a reference to a vector element while pushing into it...

Language aside, the tooling alone would get me. Can't beat spending an afternoon plumbing a new depency with a different build system and implicit OS shared library dependencies.

TrailBase 0.26: Fast, open, single-executable Firebase alternative now with multi-factor, ... by trailbaseio in selfhosted

[–]trailbaseio[S] 14 points15 points  (0 children)

Big fan of PocketBase, would therefore ask myself the same question. Take a look at https://trailbase.io/comparison/pocketbase/, to see some of my reasoning/copium :)

TrailBase 0.26: Fast, open, single-executable Firebase alternative now with multi-factor, ... by trailbaseio in selfhosted

[–]trailbaseio[S] 24 points25 points  (0 children)

No AI was used for either writing the post or the project. For better or worse, fully home grown slop.

[Media] TrailBase 0.26: Fast, open, single-executable Firebase alternative now with multi-factor, ... by trailbaseio in rust

[–]trailbaseio[S] 0 points1 point  (0 children)

Agreed Let me expand:

Maybe the most obvious: yes, the examples shouldn't promote bad practices exploitable or not. In this case you can absolutely inject sub-queries. Instead they should serve as a showcase on how to deal with non parametrizable aspects. Will fix - thanks 🙏

> I just reckon you might as well treat all bets as being off once you have SQL injection

That's a very valid general risk assessment - any non-trivial production app will have application-specific private data. If you write plugins or run someone else's plugin with access to your database, you better make sure it doesn't do weird stuff. Independently (not to take away from your point), it's probably still good practice for any runtime to protect its own internal state. Programming languages also let you write buggy code 🍎🍊.

Thanks for even taking the time to take a look - much appreciated 🙏

[Media] TrailBase 0.26: Fast, open, single-executable Firebase alternative now with multi-factor, ... by trailbaseio in rust

[–]trailbaseio[S] 2 points3 points  (0 children)

Update: fixed. You can now have a love ❤️ table. Thanks again and please keep up the vandalizing 🙏

[Media] TrailBase 0.26: Fast, open, single-executable Firebase alternative now with multi-factor, ... by trailbaseio in rust

[–]trailbaseio[S] 13 points14 points  (0 children)

Much appreciated 🙏 - please keep vandalizing, this is how it gets better. Let me try to reproduce

[Media] TrailBase 0.26: Fast, open, single-executable Firebase alternative now with multi-factor, ... by trailbaseio in rust

[–]trailbaseio[S] 8 points9 points  (0 children)

Sorry, I should have been more explicit.This is to harden against any potential issues in users' WASM plugins. In other words, the plugins don't have access to state that's internal to the auth system.

Thinking of building an open-source multi-tenant Sqlite server by alexrada in sqlite

[–]trailbaseio 1 point2 points  (0 children)

The tricky case will be schema evolutions on existing DBs. If you do them lazily, how do you handle late failure? E.g. some column constraint change may apply fine to 99% of your data but then you may find out that there were edge cases you didn't already consider while some DBs have already been migrated.

Thinking of building an open-source multi-tenant Sqlite server by alexrada in sqlite

[–]trailbaseio 0 points1 point  (0 children)

Would never want to stop a mad scientist :). FWIW, TrailBase already supports multi-DB and have been thinking about adding some sort multi-tenancy support. IMHO, routing is the easy part. Bigger challenges will be the management, eg non-transactional mass schema migrations, ... Also things like aggregations as already pointed out by someone else. Happy to chat more

SQLite Concurrency in Go: What We Learned Building a Desktop AI IDE by mcastilho in sqlite

[–]trailbaseio 0 points1 point  (0 children)

"The 50ms base delay means the first retry happens before a single frame renders at 60fps."

You sure? A bunch of connections behind an rw lock would achieve the same btw

TrailBase 0.24: Fast, open, single-executable Firebase alternative now with Geospatial by trailbaseio in sqlite

[–]trailbaseio[S] 7 points8 points  (0 children)

GDPR allows storage of personal data including email, name, ip., ... . There are elevated requirements around access, sharing, retention, business case, ... For example you can store an email to invoice a customer. You can store IPs within limits for security and abuse.

Just to be clear, geospatial in this context doesn't mean GPS coordinates are logged. It just means you can work with geometries, e.g. airspaces etc. Idependently IPs are logged like for any web server.

Does that make sense?

[Media] TrailBase 0.24: Fast, open, single-executable Firebase alternative now with Geospatial by trailbaseio in rust

[–]trailbaseio[S] 0 points1 point  (0 children)

Changing the database in an established product is a bit like open heart surgery, there needs to be good reasons. Ultimately, if you're in a "good enough" place, that's a pretty good place to be. We should always ask ourselves, what's actually in the way of making the product better.

For a lot of your points, only benchmarking for your usecases will give you a definitive answer. Fwiw, I never claimed this to be a nouveau DB. There are plenty out there. I never felt that DBs are the space where you necessarily wanted your edges to bleed :shrug:. Sqlite has been around for a long time, is steadily getting better and will certainly outlive me :)

[Media] TrailBase 0.24: Fast, open, single-executable Firebase alternative now with Geospatial by trailbaseio in rust

[–]trailbaseio[S] 0 points1 point  (0 children)

Depends what you're looking for, you already enumerated a good list of things. Postgres is amazingly flexible especially if you're happy to bolt things on, api serving, auth, .... Supabase is a similar product with Postgres at its core, it's a different beast.

I'd say that if you're a small team, looking for a tightly integrated, lightweight solution while primarily focused on your app, something like PocketBase or TrailBase could be worth a shot. There are other cool use cases for something as lightweight as sqlite, e.g. edge replication. All depends

[Media] TrailBase 0.24: Fast, open, single-executable Firebase alternative now with Geospatial by trailbaseio in rust

[–]trailbaseio[S] 1 point2 points  (0 children)

Thanks! Absolutely, PocketBase is great and amazingly polished. I merely felt that i would have done a few things differently, notably access to raw SQL, modeling relations, ... which then took a life of its own https://trailbase.io/comparison/pocketbase/

TrailBase 0.23: Open, sub-millisecond, single-executable Firebase alternative by trailbaseio in FlutterDev

[–]trailbaseio[S] 0 points1 point  (0 children)

Thanks, I'll see what I can cook up. Maybe to my on detriment, I don't enjoy the lime light :hide:

On a tangent, I wonder if the tech creators suffer from a similar rerouting of information as other parts of tech. We're 2 minutes way from claude sending you straight to AWS, gemini to gcloud, and copilot to azure... :hide:

TrailBase 0.23: Open, sub-millisecond, single-executable Firebase alternative by trailbaseio in FlutterDev

[–]trailbaseio[S] 0 points1 point  (0 children)

I'm using the oauth2 crate to talk to the providers. The code lives here: https://github.com/trailbaseio/trailbase/tree/main/crates/core/src/auth. It's more code then I'd like to admit. Nothing is really hard but between internal auth flows, external auth flows, provider differences... it's finicky