Live data from Hacker News

Audioscrape: Building in Rust When Everyone Said I Shouldn't

news.ycombinator.com

41–47 of 47 posts

Re: Audioscrape: Building in Rust When Everyone Said I Shouldn't

#41
post #28

Awesome work. Yes, I’ve been interested in Rust for a while and have been hacking on a side project. It’s an API service in Rust, but for the CRUD management part I used Elixir/Phoenix and Phoenix gen auth to have something up quickly that’s not dependent on some third-party service.

Thanks. Interesting. What are some best practices for integrating Rust with Elixir/Phoenix in a project, especially when managing CRUD operations and maintaining system efficiency you learned along your side project?

Right now I run them as two separate services. Phoenix does all the user signup and management, landing page, docs and vends API keys while I use Rust for the API product itself, which does some cpu bound work where Elixir would have been weaker. They both share a Postgres database where the Rust API is restricted to the api keys table.

There is also Rustler which helps facilitate calling Rust binaries from Elixir directly but I opted to deploy them separately.

Re: Audioscrape: Building in Rust When Everyone Said I Shouldn't

#42
Nice project. It's useful for listening to a specific speaker, allowing to skip other speakers who don't add useful information. It enables listening to podcasts even with annoying interviewers. Would be great if this were built in the major podcast listening applications.

Re: Audioscrape: Building in Rust When Everyone Said I Shouldn't

#43

Earlier quoted context omitted.

Oh yah I totally understand the current circumstances, just trying to be helpful in debugging. I think a notification feature makes a lot of sense, but it depends on how long the wait tends to be. In terms of setting expectations it might be better to display the current backlog and an estimate about when the transcription might be done (though of course both would be even better than either).

Thanks for the feedback! I'm glad to hear you find the notification idea useful. I'm considering displaying the current backlog and estimated completion times as you propose. How would you expect to get an understanding of the backlog? Would a dedicated page for the entire backlog be helpful, or would you prefer to see which episodes are being transcribed on each podcast page? Any insights on what would be most helpf…

Suggestion, you've probably fairly easily got access to how long the most recently completed task took?

Perhaps on the submission form include a low-resolution indication of that, so people's expectations are set before they enter a podcast link? Round it off to the nearest minute/hour/day, and format it appropriately:

"Processing times are currently around 3 hours"

or

"Processing times are currently around 17 minutes"

Re: Audioscrape: Building in Rust When Everyone Said I Shouldn't

#45

I bootstrapped Lapdev ( https://lap.dev/ ) all in Rust too. Axum for the backend and Leptos for the frontend. Sharing structs between backend and frontend is quite nice. Besides the memory safety, type system etc, Rust gives you the confidence that you know it can scale in pretty much all scenarios in terms of performance.

Congrats on the impressive project! Sharing structs between the frontend and backend sounds very helpful. I've experienced the advantage of shared FE and BE code in JS/TS projects, and it’s definitely valuable. What led you to choose Leptos for the frontend besides the shared code advantage?

For frontend in Rust, there're Yew, Sycamore, Dioxus and Leptos to choose from. Leptos fits me the best in terms of DX.

Re: Audioscrape: Building in Rust When Everyone Said I Shouldn't

#47
post #20

Earlier quoted context omitted.

I hope you're calling the `backup` command in sqlite. A simple copy can leave sqlite db files in an inconsistent state from which sqlite can't recover.

Thanks for the hint. I didn't know that. So far nothing happened, but I will start using the backup command.

"reliable software"
Post reply on HN