SQLite is the one project written in C that I would consider to be one of the most scrutinized open source code and thus put it on the bottom of the list of projects in need of a rewrite in Rust. However I love Rust and enjoy using it. Thanks to everyone involved :-)
One very nice thing about sqlite is that it will compile on a large number of C compilers. This includes compilers available for older platforms, or embedded or more specialized use. Not everyone is running the latest MacOS / Windows / Linux. Rust is llvm compiler only and is available for far fewer platforms. Maybe that doesn't matter to your project, but it does matter.
I mean, if you _really_ needs arcane embedded, you can use WASM as intermediate. Rust -> WASM -> machine code. Translating WASM instruction to machine code is _almost_ trivial.
I did some looking into it and there are far more llvm targets than I was aware of. They'll always be something that isn't supported, but I'm impressed at how much is.
@user-sb5vt8iy5q LLVM is absolutely NOT available for everything. GCC is the most widely compatible compiler out there, and even then there are many targets where your only option is an ancient in-house fork of GCC that will likely never see support for anything modern.
@@nathanfranck5822 normally my OCD is not that strong anymore but it triggered by it. but since he doing it to train himself , question i have now why?
@ClimateChangeDoesntBargain He would still be in development for another 4-5 years, and then get dropped because the basement coders working on it would have gotten tired and moved on well before 0.7 release.
Elevator pitch: I am upset there are so many different SQL type syntaxes I've learned to use throughout the years... so lets just make fun of this first world problem with a new syntax called: YASS - "Yet another SQL syntax"
said from a kid. irrational comment, purely a mental problem. by rewriting in rust, it ensures there are no hidden memory and pointer bugs that have not been caught, while using a modern architectural design. it also makes it easier to maintain in the long run, maintenance on rust is much easier than c/c++, writing it is also much easier because it is assisted by the compiler so that it does not forget so that it does not make mistakes related to memory and pointers, and does not dive into debugging and debugging for a long time like in c/c++
This _is_ the kinda software that actually makes sense in Rust though. Front-end frameworks in Rust is where I'd say it becomes a bit unnecessary (I'm a hypocrite in this sense because the only mildly serious UI I've ever written is a web extension who's UI and logic is both in Rust).
its make sense, rust enforce safety whether the progammer is junior skill, medium skill, or senior skill where c++ will be crazy in junior skill programmers
Don't get me wrong, i'm part of this rust rewriting community but i just find it funny. I also do agree it makes total sense regarding the speed and safety. It will just take some time till it's somewhat usable in production.
It will be interesting to see how they do the very core indexing data structures in rust. My understanding is that to make databases work well, they use very unsafe structures!
we really dont need sqlite reimplemented in a C variant, it is fine if it is in rust, as it allows to have a clean rust alternative to bindings, so i am glad they stayed on track.
That lib file with the unsafe is just the bindings, not the core code. Any ffi is fundamentally unsafe since the compiler can’t control what outside callers are doing.
I wonder why zig was rejected in favor of rust? Usually you hear the other way around, e.g. "it became super difficult with rust, so we switched to zig".
As a corollary to my question, I wonder if the following statement is true: "anything you can write in rust, you can write the exact equivalent code in zig, translating almost line-for-line... but the reverse, of course, is not true".
id imagine rewriting something in Rust wouldn’t be too hard (compared to writing something new), since you would already know exactly what you’re building.
I'm thrilled if this can evolve into a maintained project. There are so many cool embedded databases in Rust, but they also generally don't have a stable file format or become abandoned adter a few versions. I basically am stuck with RocksDB as the best worst choice.
I read somewhere that you can access the SQLite test suite, but you need to be a contributor and that require a screening process or that you are a big company willing to provide contributions
This will be pain in the ass with 3 implementations of sqllite which are not feature identical... The same shit was done to the sass precompiler and now you have to lookup the correct software to just precompile css. Great... Just name it different...
Deterministic Testing is not the same thing as 100 branch testing. The aircraft industry demands that every possible branch in the code is exercised in testing. Sqlite's current test suite does that. Also chaos monkey/gorilla/kaiju isn't really applicable to an embedded database.
Database in language that is not stable yet. Remember he thinks Linux kernel should have used Zig too. People take these UA-cam pundits way to seriously.
The issue is that they are rewriting it for computer use but a large part of SQLite is how well it works one embedded. On some embedded projects even C++ is to resource inefficient compared to C. I doubt Rust will be as efficient with ram as C is
Rust is as efficient on RAM as C is, if not even more since a lot of conventions in C is the passing of object heap pointers. Unlike in C where resources (in this case, memory) have non-deterministic lifetimes, Rust has an explicit destructor called et the end of each scope.
C++ isn't "too resource inefficient compared to C". Shows you have no idea what you're talking about when you frame it like that. What in C++ has an inefficient memory layout compared to the equivalent in C? If you need to perform whatever task in C or C++, you're still doing the same stuff. If you make inefficient design choices then that's on you, not on the language.
@@theultimateevil3430 Yes you can, which is not a bad idea since you will always have the option to make use of an expensive functionality if you have resources left.
@@worldspam5682 Who said that everything should be rewritten in Rust? Those things that get rewritten are feasible because Rust is stable unlike Zig, and offers lots of benefits in terms of safe parallelism and concurrency, memory safety, no UB in safe Rust, good interop with other languages etc., it gets chosen for multiple reasons. This is not just rewrite but adding additional features on top of it.
rust is different, it doesn't need a lot of testing like in c/c++ to make sure they are safe, sometimes there are still bugs that slip through without being caught. that's the difference in safety level, like heaven and earth
@@HYDROGEN_OS rust makes the assumptions all syscalls happen in userspace and immediately return their result. io_uring doesn't work that way. you cant use async await with io_uring till rust is patched for that. you are leaking file descriptors all over the place and no crate can solve that, it has to be solved on a type system level. Rust Futures are not capable of handling io_uring doing syscalls in a kernel thread out of control of rust. look here: github.com/ethe/io-uring-is-not-cancellation-safe/blob/master/src/main.rs
Chaosgodzilla would not be turning the world off. That would be chaosghidora. Chaosgodzilla would be the one trying to stop him probably with help from chaosmothra and chaosrodan. Just saying.
Rewriting things in Rust is only ever an improvement when multithreading is not being utilized usually by old C utilities. Rust is going to be markedly SLOWER than a properly written multithreaded C++ library by the very nature of it having significantly less overhead and being far more optimized in most compilers. I would like to see a real heavy speed torture test of this library. So far such tests are unimpressive with Rust and likely would be less than suitable for database purposes... which by nature often times cannot be parallelized due to ACID standards etc. In other words ... ok it's neat that more people can work on this but the choice of language is bad. (It also might be cheating if it's using something like compiled assembly for it's data structure backend. To my knowledge you cannot write a proper B-tree in Rust at all.)
from your comment implies you actually don't know anything you type but pretend to know, it's very funny to read. both rust arc and c++ use atomic operation for multithreading in their smart pointers, so they have the same overhead, but rust has the advantage of safety while c++ doesn't. but rust has other smart pointer that zero overheat while c++ smart pointers still have higher overheat, not zero overhead. unique_ptr for examplet, it is not trivially movable or trivially destructible, there are numerous optimizations that every current C++ compiler does not perform, for example being able to pass a unique_ptr in a register. unique_ptr is reasonable given C++'s limitations, but it doesn't come close to being as good as Rust's Box, which is genuinely zero overhead and also guarantees that there's only 1 mutable reference to the object at any given time. uniq_ptr can’t be passed in registers (mentioned upthread) for ABI reasons, but Box doesn’t have that restriction. Another one is what happens when you move a value out, in C++ it’s in an “indeterminate state”, but in Rust you can’t access a value after move. Which means that you can get a null pointer exception in C++, but not in Rust, and means that destructors for uniq_ptr have to check for this case, whereas in Rust they don’t. and rc, it doesnt do atomic operation, hence its much more performant than any c++ smart pointer because all of c++ smart pointer needs atomic operations.
zig is a joke, sometime after i free a memory, i can still access it lmao, gives use after free bugs, etc. it's not close to rust at all, zig safety is still in c/c++ class
Don't you know what the garbage collector is for? And Java can still experience other bugs like null pointers, data races, so it takes more effort because you have to find and fix it yourself, while Rust is assisted by the compiler
@@HYDROGEN_OS If you get a null pointer and can't figure out where it is, when the stack trace will tell you exactly where in the code you got the null pointer, and the entire call stack that led you to this decision, then you need to learn how to read a call stack. Never had data races either. Java comes with a robust set of data structures for multithreaded applications, so this is just the skilliest of issues on your part.
@HrHaakon that's not me. the point is java is not safe for all programmers, learn by reading. junior dev programmer can break java project with null pointer and data race. you don't program alone, are you just doing hobby project? in industry 1 big project is done by many programmers. each programmer has different skill, if there is a programmer who lack skill, it can break java project with the mistake they make, make people spend time in debugging instead of making feature. java can't catch null pointer in compile time. what you said is in runtime which is dangerous lmao
@@HYDROGEN_OS that's BS, with capital letters. How rust prevents bugs and mistakes? If that's was true, then rust would be the first programming language to achieve the impossible and everyone would be using it. Don't spread lies.
@johndoe2-ns6tf lmao, learn before talk. rust prevents memory leak, dangling pointer, data races, etc. the leave possible bug is only business logical bugs which is unrelated to language
Why though? What is this push to just rewrite everything in Rust? I think it's just such a complex language that everyone learning it has to create a project like this as a learning mechanism and we just end up with people trying to rewrite literally everything in Rust lol But it's such a mindf*** to see so many new projects spring up where you ask "did you add something? no. did you change something? no. WTF did you do then? Oh it's written in a different language now!"
Because rust lets you define explicit types, guarantees some safety. Its modern, it has a learning curve but odds are if you are a good c++ dev you can definitely move to rust
Rust devs are annoying. With SQLite it’s even funnier, because the whole reason it took off is its ubiquity, and that’s in part because it’s in C and binding C is generally super easy. I severely doubt any rust rewrite will take off.
Sqlite devs are fanatics. Limbo is new shiny staff made with new shiny staff. My prediction - sqlite will last, limbo will be adhd abandone , like shiny js frameworks 😊
@DynamicalisBlue awikwok that's just a fairy tale, they are not equal at all, if so Microsoft and Google wouldn't have many bugs related to memory and pointers in their programs, and the Linux kernel wouldn't have tge said bugs either, now cry more
Rusts memory model is not great for databases. It is not great for web, and it is not great for UI in general. Rust people have this conquering attitude that makes is very easy to root against them. The type system also doesn't play well with other applications and programs.
said from a kid that doesn't know anything he said. rust memory model is the best for anything, its the best for both short runs and long runs. the best, the heaven language that is complete and has anything, performance, safety, confidence in building complex app with many different skill people working together, dont need to deep dive in debugging like others that will spend way way way many time in debugging, and then they have hidden bugs hides elsewhere that is not catched
@HYDROGEN_OS the best for anything is why people hate rust and it will die on the vine. Know your limitations and trade offs. Rust is hot ass for large teams and large projects.
Limbo is not the best place to leave your data
yeah, the name is not the best
i know they will rename but for now....
its pretty funny
Or your soul
Love their sense of hunour
@@SimGunther idk, better than hell, for sure.
Everything that can be rewritten in rust will eventually be rewritten in rust
Whether it should be is another thing entirely
@@randomexplosion6527 Prisma went from Rust to TS
Your [Rust programmers] were so preoccupied with whether they could, they didn’t stop to think if they should.
Partially because there's a whole heck of a lot of former JS devs writing rust these days. (see also: Atwood's Law)
"I am currently rewriting politics to Rust"
Also : Chaos Godzilla is implemented for free by CrowdStrike
Everybody is gangsta until their favourite library gets rewritten in rust
if it exists, there will be a Rust version of it.
Unless it’s written in go
SQLite is the one project written in C that I would consider to be one of the most scrutinized open source code and thus put it on the bottom of the list of projects in need of a rewrite in Rust.
However I love Rust and enjoy using it.
Thanks to everyone involved :-)
this is for using io uring, so it might be worth the rewrite
@guillemgarcia3630 I see. IO uring offers a lot of benefits. Thanks for pointing this out.
@@guillemgarcia3630 I see. Thanks for pointing that out
Turso really like sqlite but they need some of somewhat niece features for their usage, so they decide to rewrite it in rust.
@@OnFireByteas opposed to nephew features?
One very nice thing about sqlite is that it will compile on a large number of C compilers. This includes compilers available for older platforms, or embedded or more specialized use. Not everyone is running the latest MacOS / Windows / Linux. Rust is llvm compiler only and is available for far fewer platforms. Maybe that doesn't matter to your project, but it does matter.
llvm is basically available anywhere, it probably works on your smart fridge too
I mean, if you _really_ needs arcane embedded, you can use WASM as intermediate. Rust -> WASM -> machine code. Translating WASM instruction to machine code is _almost_ trivial.
@@hanifarroisimukhlis5989noooo if you aren’t using my niche C compiler you aren’t doing it right 😭. Meanwhile COBOL and MIPS ASM sitting there like 😒
I did some looking into it and there are far more llvm targets than I was aware of. They'll always be something that isn't supported, but I'm impressed at how much is.
@user-sb5vt8iy5q LLVM is absolutely NOT available for everything. GCC is the most widely compatible compiler out there, and even then there are many targets where your only option is an ancient in-house fork of GCC that will likely never see support for anything modern.
primeagen is messing with my OCD when he highlights perfectly each time everything except the first letter and last letter!!!!!!!!!!!!!!!!!
It's how he aim trains
@@nathanfranck5822 normally my OCD is not that strong anymore but it triggered by it. but since he doing it to train himself , question i have now why?
Im here so fast I must be written in Rust.
@@BrettW And you need a Code of Conduct!
If you were written in rust you would’ve been much slower to comment and would not have missed the apostrophe.
@@_kostant hahah owned
@@_kostant why would he have been slower? And Rust doesn't prevent logic bugs, so the missing apostrophe aligns with Rust.
@ClimateChangeDoesntBargain He would still be in development for another 4-5 years, and then get dropped because the basement coders working on it would have gotten tired and moved on well before 0.7 release.
Elevator pitch: I am upset there are so many different SQL type syntaxes I've learned to use throughout the years... so lets just make fun of this first world problem with a new syntax called: YASS - "Yet another SQL syntax"
Yass.
💅🏻
YASS - Your ASS
Rust people lack imagination, and can only try to rewrite established software, but are unable to invent something new
said from a kid. irrational comment, purely a mental problem. by rewriting in rust, it ensures there are no hidden memory and pointer bugs that have not been caught, while using a modern architectural design. it also makes it easier to maintain in the long run, maintenance on rust is much easier than c/c++, writing it is also much easier because it is assisted by the compiler so that it does not forget so that it does not make mistakes related to memory and pointers, and does not dive into debugging and debugging for a long time like in c/c++
It's faster cause it doesn't have 1/3 of the SQLite features...
Tbf I don't mind having a less feature-rich, faster software over a bloated one, as long as the basic features are around
@@shadergz How so as they're fork of it with backward merge so they should have all its features plus some more?
@@mysterry2000What's bloated about sqlite? Limbo doesn't even have the basics yet. It's currently unusable and a wip
@@TheRealCornPop how can it not have features if it's a fork?
@@mysterry2000 Until you need that one feature?
An educational exercise or self-torture. I bet the word "unsafe" appears often in the repo.
We should make a page like the js framework one "Days Since Last Rust Rewrite" (I'm a Rust dev myself but this is kinda getting out of hands)
Is it gettign of hand? Sqlite in rust makes sense.
This _is_ the kinda software that actually makes sense in Rust though. Front-end frameworks in Rust is where I'd say it becomes a bit unnecessary (I'm a hypocrite in this sense because the only mildly serious UI I've ever written is a web extension who's UI and logic is both in Rust).
its make sense, rust enforce safety whether the progammer is junior skill, medium skill, or senior skill where c++ will be crazy in junior skill programmers
Don't get me wrong, i'm part of this rust rewriting community but i just find it funny. I also do agree it makes total sense regarding the speed and safety. It will just take some time till it's somewhat usable in production.
Just make it a static html page stuck on 0 days. It will always be correct.
I'll take the database protected by the Rule of St. Benedict, thanks.
birb
It will be interesting to see how they do the very core indexing data structures in rust. My understanding is that to make databases work well, they use very unsafe structures!
This is very interesting now you've commented it.
unsafe is not inherently bad it is required for core stuff, it just indicates that more attention is required
we really dont need sqlite reimplemented in a C variant, it is fine if it is in rust, as it allows to have a clean rust alternative to bindings, so i am glad they stayed on track.
dude, it's a db. What in the name of purist zealot is this?
so nice you approached this on a serious manner
That lib file with the unsafe is just the bindings, not the core code. Any ffi is fundamentally unsafe since the compiler can’t control what outside callers are doing.
sqlite is one of the best codebases available. I question this company's priorities to rewrite something that is already excellent.
The only way from excellence is down
the closed source nature prevents natural extension of the project (vector db, wasm, etc.). did you not watch the video?
yeah, one would think they have other dependencies which they would focus on first
I wonder why zig was rejected in favor of rust? Usually you hear the other way around, e.g. "it became super difficult with rust, so we switched to zig".
As a corollary to my question, I wonder if the following statement is true: "anything you can write in rust, you can write the exact equivalent code in zig, translating almost line-for-line... but the reverse, of course, is not true".
id imagine rewriting something in Rust wouldn’t be too hard (compared to writing something new), since you would already know exactly what you’re building.
Zig isn't 1.0 yet, so...
@@freeideas you are probably talking about Rust without unsafe, as you can write anything in Rust
Tsoding : "The typical zigooner..."
Prime forgot to mention Chaos Grizzly, which goes a step further and kills the entirety of Netflix.
I'm thrilled if this can evolve into a maintained project.
There are so many cool embedded databases in Rust, but they also generally don't have a stable file format or become abandoned adter a few versions.
I basically am stuck with RocksDB as the best worst choice.
Presumably the file format is stable since they're copying.
Here before the title change o7
I read somewhere that you can access the SQLite test suite, but you need to be a contributor and that require a screening process or that you are a big company willing to provide contributions
And not, say, a hacker looking to find exploits.
A clever name that St. Benedict would surely approve.
i miss the dyslexic title of this video 😭
What was it??
@@redyau_^^
As a business engineer it's hard to hear Squeal. I've only heard SQL or Sequel never Squeal 🐷
The people who know what they're doing/talking about don't have time to make these shitty videos.
DST sounds a lot like property based testing which has been around for along time.
This will be pain in the ass with 3 implementations of sqllite which are not feature identical... The same shit was done to the sass precompiler and now you have to lookup the correct software to just precompile css. Great... Just name it different...
Deterministic Testing is not the same thing as 100 branch testing. The aircraft industry demands that every possible branch in the code is exercised in testing. Sqlite's current test suite does that. Also chaos monkey/gorilla/kaiju isn't really applicable to an embedded database.
Necessity is the mother of invention.
You should apply, Prime. And "get a real job again."
Everything rewritten in rust will eventually be rewrittten in stainless.
I'm starting to wonder who is more. Unhinged.... The average JS/React dev or the average Rust dev
Hey was waiting for you to talk about that!
Keep the free nature of SQLite, completely free in all aspects and I am sold!
I think Chaos Godzilla would be to simulate an entire cloud provider going down if they ever went with a multi cloud deployment.
Pro tip for Finnish names: You say the double consonant *twice.*
So "Pekka" is not PEKA, but PEK-KA. Accent on the first syllable.
Really find promoting Zig over Rust for this completely incomprehensible
Database in language that is not stable yet. Remember he thinks Linux kernel should have used Zig too. People take these UA-cam pundits way to seriously.
Them zigooners
Now I know what to call the testing paradigm I have been using since 1997. DST.
Everything rewritten in Rust will eventually be re-rewritten in Lisp
Thats a new license, you rewrite it in Rust and it’s yours! ⭐️
The issue is that they are rewriting it for computer use but a large part of SQLite is how well it works one embedded. On some embedded projects even C++ is to resource inefficient compared to C. I doubt Rust will be as efficient with ram as C is
Can't you just write C++ without C++ features that introduce tons of indirection, and in a data-driven manner to minimize copying/allocations?
Rust is as efficient on RAM as C is, if not even more since a lot of conventions in C is the passing of object heap pointers. Unlike in C where resources (in this case, memory) have non-deterministic lifetimes, Rust has an explicit destructor called et the end of each scope.
@@theultimateevil3430 You can. C with templates can be written just fine. Though C++ forces malloc casts which can be really annoying.
C++ isn't "too resource inefficient compared to C". Shows you have no idea what you're talking about when you frame it like that. What in C++ has an inefficient memory layout compared to the equivalent in C? If you need to perform whatever task in C or C++, you're still doing the same stuff. If you make inefficient design choices then that's on you, not on the language.
@@theultimateevil3430 Yes you can, which is not a bad idea since you will always have the option to make use of an expensive functionality if you have resources left.
Yeah I've been investigating DST at work. It sounds cool I just gotta get used to testing like that...
Are they planning on doing the Safety critical stuff with DO-178b and testing all branches?
What is the difference between Deterministic Simulation Testing and Property Based Testing?
Fitting title for where your data will end up :)
That Microsoft team btw was Excel.
7:58 - always selects excluding boundary characters😀
2026: RustGo ®
At this point, i should rewrite myself in rust
Recommending Zig just because you like it is not feasible.
Rewriting everything in rust is not feasible too, and yet here we are.
@@worldspam5682 Who said that everything should be rewritten in Rust? Those things that get rewritten are feasible because Rust is stable unlike Zig, and offers lots of benefits in terms of safe parallelism and concurrency, memory safety, no UB in safe Rust, good interop with other languages etc., it gets chosen for multiple reasons.
This is not just rewrite but adding additional features on top of it.
I've been kind of inclines to say "go with rust" for the real-world benefits rust brings plus a little bit of I want to see a Mozilla W streak
I'm only 15 seconds in, and I already want to Pekka Prime's Glauber
Speaking of Spolksy, Things You Should Never Do, Part I never felt more relevant.
When rewriting SQLite, I expect the same amount of tests. 500x more test code than source code. Millions and millions of tests.
rust is different, it doesn't need a lot of testing like in c/c++ to make sure they are safe, sometimes there are still bugs that slip through without being caught. that's the difference in safety level, like heaven and earth
sqlite is getting the femboy treatment
envious?
What's the femboy treament? 🤨
where does libsql fit in?
They had to go with the devil as the logo.😂
Looks more like a bull to me.
1:57 I don't mind that color scheme
i am watching this on the side like squirrel what?
Twitch comments literally went "Hawk tuah." 😂😂😂😂
You have any resources for simulation testing? How to get started? I can't find anything
Rule 34r: every program can and will eventually be rewritten to Rust
what happened to squeel? liked that pronounciation. :)
"If I were to get a real job again..." 😂😂😂
OMG Jeppe Carlsen mentioned!!!11
C isn't an unsafe language. You just need to implement a memeory-safe language in C and use that.
good joke, c is cute half-finished hammer, prone to breakage
How complete is it?
Chaos Godzilla is implemented at Meta (BGP)
SQL is pronounced, or has been for years, as either S.Q.L or Sequel, never as Squeal
How did they solve the issue that you cant use async rust with io_uring?
lmao since when rust cant use async in io uring lol, compio is one of io uring based async runtime, lmao
@@HYDROGEN_OS the type system of rust aint capable of safely using io_uring. it makes all kinds of assumptions which io_uring broke.
@@asmod4n you are totally wrong. many io uring async runtime exist, tokio, compio, glomio, etc, and they are all safe unlike c/c++.
@@HYDROGEN_OS rust makes the assumptions all syscalls happen in userspace and immediately return their result. io_uring doesn't work that way. you cant use async await with io_uring till rust is patched for that. you are leaking file descriptors all over the place and no crate can solve that, it has to be solved on a type system level. Rust Futures are not capable of handling io_uring doing syscalls in a kernel thread out of control of rust.
look here: github.com/ethe/io-uring-is-not-cancellation-safe/blob/master/src/main.rs
@@HYDROGEN_OS just search for io_uring is not cancellation safe with rust.
Chaosgodzilla would not be turning the world off. That would be chaosghidora. Chaosgodzilla would be the one trying to stop him probably with help from chaosmothra and chaosrodan. Just saying.
This is just obnoxious.
Why is ffmpeg unhinged?? What did I miss?
It's not written in rust)
Have heard about RocksDB?
I'd rather see reasonable data types in SQLite
Chaos Godzilla is turning DNS off
Rewriting things in Rust is only ever an improvement when multithreading is not being utilized usually by old C utilities. Rust is going to be markedly SLOWER than a properly written multithreaded C++ library by the very nature of it having significantly less overhead and being far more optimized in most compilers. I would like to see a real heavy speed torture test of this library. So far such tests are unimpressive with Rust and likely would be less than suitable for database purposes... which by nature often times cannot be parallelized due to ACID standards etc. In other words ... ok it's neat that more people can work on this but the choice of language is bad. (It also might be cheating if it's using something like compiled assembly for it's data structure backend. To my knowledge you cannot write a proper B-tree in Rust at all.)
from your comment implies you actually don't know anything you type but pretend to know, it's very funny to read. both rust arc and c++ use atomic operation for multithreading in their smart pointers, so they have the same overhead, but rust has the advantage of safety while c++ doesn't. but rust has other smart pointer that zero overheat while c++ smart pointers still have higher overheat, not zero overhead. unique_ptr for examplet, it is not trivially movable or trivially destructible, there are numerous optimizations that every current C++ compiler does not perform, for example being able to pass a unique_ptr in a register.
unique_ptr is reasonable given C++'s limitations, but it doesn't come close to being as good as Rust's Box, which is genuinely zero overhead and also guarantees that there's only 1 mutable reference to the object at any given time. uniq_ptr can’t be passed in registers (mentioned upthread) for ABI reasons, but Box doesn’t have that restriction. Another one is what happens when you move a value out, in C++ it’s in an “indeterminate state”, but in Rust you can’t access a value after move. Which means that you can get a null pointer exception in C++, but not in Rust, and means that destructors for uniq_ptr have to check for this case, whereas in Rust they don’t. and rc, it doesnt do atomic operation, hence its much more performant than any c++ smart pointer because all of c++ smart pointer needs atomic operations.
and there are many btree implementations in rust since long time ago, don't know but pretend to know, awikwokwok
Yes, more code that's exponentially hard to dive into unless you're an AI (eventually).
Prime, Zig still isn't 1.0
That's reasonable enough to not use it yet. It's great tho, but we have to wait ig
zig is a joke, sometime after i free a memory, i can still access it lmao, gives use after free bugs, etc. it's not close to rust at all, zig safety is still in c/c++ class
So prime uses a pixel
I mean, Derby is written in Java, and that's perfectly memory safe.
Yes, you do not manage memory in Java or C# yourself (I know, there are unsafes but who uses them) so it is memory safe.
Don't you know what the garbage collector is for? And Java can still experience other bugs like null pointers, data races, so it takes more effort because you have to find and fix it yourself, while Rust is assisted by the compiler
@@HYDROGEN_OS
If you get a null pointer and can't figure out where it is, when the stack trace will tell you exactly where in the code you got the null pointer, and the entire call stack that led you to this decision, then you need to learn how to read a call stack.
Never had data races either. Java comes with a robust set of data structures for multithreaded applications, so this is just the skilliest of issues on your part.
@HrHaakon that's not me. the point is java is not safe for all programmers, learn by reading. junior dev programmer can break java project with null pointer and data race. you don't program alone, are you just doing hobby project? in industry 1 big project is done by many programmers. each programmer has different skill, if there is a programmer who lack skill, it can break java project with the mistake they make, make people spend time in debugging instead of making feature. java can't catch null pointer in compile time. what you said is in runtime which is dangerous lmao
@@HYDROGEN_OS
A shit developer will not be better in say, Rust. Except that their code won't compile so the damage will be zero.
Squeal lite? Not sequel lite?
If it ain't broke don't fix it...
theyre not "fixing" it. have you watched the video?
Try to make it actually open source
@@LaysarOwO it's the same as uglification/race swap that happens with twitter art. They all are "fixing it"
@@worldspam5682 so we're racist... alrightttt
@@LaysarOwO oh, so now it's not racist to change race of something?
Or is it not racist only if it was changed from one specific race to another?
why rewrite a 20 years battle tested staple?
Why rust though and not zig ?
rust enforce safety, so even junior programmers or noob programmers willnt able to break the project by making mistakes or bugs
zig doesnt has many to offer
@@HYDROGEN_OS that's BS, with capital letters. How rust prevents bugs and mistakes? If that's was true, then rust would be the first programming language to achieve the impossible and everyone would be using it. Don't spread lies.
@johndoe2-ns6tf lmao, learn before talk. rust prevents memory leak, dangling pointer, data races, etc. the leave possible bug is only business logical bugs which is unrelated to language
@johndoe2-ns6tf learn so that you have high skill
For the gos shake, stop highlighting text!
An tith uh sis, not anti thesis
Why though? What is this push to just rewrite everything in Rust? I think it's just such a complex language that everyone learning it has to create a project like this as a learning mechanism and we just end up with people trying to rewrite literally everything in Rust lol
But it's such a mindf*** to see so many new projects spring up where you ask "did you add something? no. did you change something? no. WTF did you do then? Oh it's written in a different language now!"
Because everything is better written in Rust /j
The entire video was a “here’s why”.. I’m so confused by your comment.
It’s a rewrite + features. ¯\_(ツ)_/¯
Because rust lets you define explicit types, guarantees some safety. Its modern, it has a learning curve but odds are if you are a good c++ dev you can definitely move to rust
Brother, the whole video is meant to just answer this question.
Rust devs are annoying. With SQLite it’s even funnier, because the whole reason it took off is its ubiquity, and that’s in part because it’s in C and binding C is generally super easy. I severely doubt any rust rewrite will take off.
Wait, it's all rust?
Always has been.
This Rust rewrite pandemic needs to be tamed.
Sqlite devs are fanatics. Limbo is new shiny staff made with new shiny staff. My prediction - sqlite will last, limbo will be adhd abandone , like shiny js frameworks 😊
Average Rust enjoyer ⚡⚡🗿
How are u saying libsqueal with a straight face lol
This is such a waste of productivity.
The 3 maintainers of SQlite:
1. NSA
2. CIA
3. FBI
Lol😂
sounds more like a rust thing, as this cult is just like those cults that were controlled by cia...
Prime is looking for a job already?
😂😂😂😂😂😂😂😂😂😂😂
I’m all for rust rewrites but converting C/C++ code to Rust is just pointless imo.
its not, it ensures there are no hidden bugs that haven't been caught, even microsoft rewrote the windows core in c++ to rust
@ Static analysers, like Clang, would detect most bugs that Rust would ‘pick up’ anyways.
@DynamicalisBlue awikwok that's just a fairy tale, they are not equal at all, if so Microsoft and Google wouldn't have many bugs related to memory and pointers in their programs, and the Linux kernel wouldn't have tge said bugs either, now cry more
Rusts memory model is not great for databases. It is not great for web, and it is not great for UI in general. Rust people have this conquering attitude that makes is very easy to root against them. The type system also doesn't play well with other applications and programs.
said from a kid that doesn't know anything he said. rust memory model is the best for anything, its the best for both short runs and long runs. the best, the heaven language that is complete and has anything, performance, safety, confidence in building complex app with many different skill people working together, dont need to deep dive in debugging like others that will spend way way way many time in debugging, and then they have hidden bugs hides elsewhere that is not catched
@HYDROGEN_OS the best for anything is why people hate rust and it will die on the vine. Know your limitations and trade offs. Rust is hot ass for large teams and large projects.