RF-Headless banner

RF-Headless

9 devlogs
10h 45m 49s

A headless browser engine, purely in rust. With high performance and well documented systems

Demo Repository

Loading README...

SeradedStripes

We have added releases to github!

Attachment
0
SeradedStripes

We are now on crates: https://crates.io/crates/rfheadless
New optimizations:
[latency_percentiles] samples=[7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, 11, 12, 12, 16, 18, 19]
[latency_percentiles] p50=8ms p95=18ms p99=19ms (threshold=200ms)
Which I personally think is pretty good.
added docs: https://idiotstudios.github.io/rfheadless/

Next up ill probably focus more on another project however for this project will focus on rendering and CLI
Will do a reship after

Attachment
0
SeradedStripes

we got under 50ms latency percentiles! ofc gonna go for better but this on my 13yr old CPU is crazy good. Oh CLI is also doing very well but Ive mainly been focusing on Optimizations

Attachment
0
SeradedStripes

No longer making UI version, just gonna do headless but I did some optimizations
Temp runtime avg (ms): 617.6875
Persistent runtime avg (ms): 641.875
Could be better so I am gonna improve
Gonna start work on CLI and finish off docs

Attachment
0
SeradedStripes

Removed a bunch of warnings in the code and found 2 very very very flakey tests that almost never work.
also I hate having to upload an image of my project everytime I wanna do a devlog,

Attachment
0
SeradedStripes

So, Ive done a bunch more work on Docs and have found some issues that I have to fix, Making my own rendering modules, and some other work which I cant remember lol

Attachment
0
SeradedStripes

Yo, forgot to do yesterday so going to do now.
So far I have done a pure rust engine (RFEngine) using Boa as a JavaScript Runtime and made RFEngine actually work.
Added synchronous console forwarding and added metadata to it.
Added safe DOM helpers and element wrappers to the engine
Implemented basic CSS parser and a function getComutedStyle to get the styles
And added a bunch of tests.

Next up I need to
Add JS execution timeouts and limit its resource usage
Improve microtask handling with Boa
Expand CSS
Do Documentation
Do a bunch of performance optimizations

Any suggestions are welcomei n the comments

Attachment
0
SeradedStripes

Yo, so far I have made a simple cookie management API and added some event callbacks. Busy replacing Chromium backend with my own custom one to possible improve performance and so you dont need chromium installed to use RFox or RF-Headless.

Attachment
0
SeradedStripes

Just started building RFheadless, and already have a working version. So far it can navigate a page, grab the title, and take a screenshot. This is just the core engine, custom backend is next and then I will implement it into a custom browser as a different project.
Roadmap:

  • CDP backend
  • Text snapshot extraction
  • Screenshot capture
  • Javascript support (sandboxed)
  • [] Event Callbacks
  • [] Cookie management API
  • [] Pure rust engine (replaces CDP)
  • [] Async API support
  • [] Multitab support
    Will add more to roadmap later.
Attachment
0