Skip to content

Commit b24003d

Browse files
committed
Add more information about package and speed
Closes #1
1 parent 072b7dc commit b24003d

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

README.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,22 @@
22

33
Parse RSS feeds very quickly
44

5+
* This is rust NIF built using [rustler](https://github.com/rusterlium/rustler)
6+
* Uses the [RSS](https://crates.io/crates/rss) crate to do the actual RSS parsing
7+
8+
**Speed**
9+
10+
Currently this is already much faster than most of the pure elixir/erlang packages out there. In benchmarks there is speed improvements anyway between **2.85x - 22.05x** over the next fastest package [feeder_ex](https://github.com/manukall/feeder_ex).
11+
12+
Compared to the slowest elixir options ([feed_raptor](https://github.com/merongivian/feedraptor), [elixir_feed_parser](https://github.com/fdietz/elixir-feed-parser)), FastRSS was sometimes **127.21x** faster and used **2091.61x** less memory. See [benchmarks](#benchmark) below.
13+
14+
15+
This could probably be made even faster by properly using [serde_rustler](https://github.com/sunny-g/serde_rustler) to directly convert the [`rss:Channel`](https://docs.rs/rss/1.9.0/rss/struct.Channel.html) into an elixir map (PRs welcome)
16+
17+
Currently we do this very naively, the process is:
18+
1. On the rust side we serialize the [`rss:Channel`](https://docs.rs/rss/1.9.0/rss/struct.Channel.html) it into a JSON string using [`serde_json`](https://docs.serde.rs/serde_json/)
19+
2. Then on the elixir side we deserialize the JSON string into a elixir map using [`Jason`](https://github.com/michalmuskala/jason)
20+
521
## Installation
622

723
This package is available on [hex](https://hex.pm/packages/fast_rss).

0 commit comments

Comments
 (0)