https://github.com/YGGverse/pulsarss
RSS Aggregator for Gemini Protocol
https://github.com/YGGverse/pulsarss
aggregator cli crawler daemon feed gemini gemini-protocol gemtext parser rss rust
Last synced: 6 days ago
JSON representation
RSS Aggregator for Gemini Protocol
- Host: GitHub
- URL: https://github.com/YGGverse/pulsarss
- Owner: YGGverse
- License: mit
- Created: 2025-02-11T16:23:03.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-09-03T06:09:20.000Z (10 months ago)
- Last Synced: 2026-02-14T00:53:33.801Z (4 months ago)
- Topics: aggregator, cli, crawler, daemon, feed, gemini, gemini-protocol, gemtext, parser, rss, rust
- Language: Rust
- Homepage: https://crates.io/crates/pulsarss
- Size: 54.7 KB
- Stars: 2
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- awesome-gemini - pulsarss - Crawl & Convert RSS feeds into static Gemtext (Tools / Graphical)
README
# pulsarss

[](https://deps.rs/repo/github/YGGverse/pulsarss)
[](https://crates.io/crates/pulsarss)
## RSS Aggregator for [Gemini Protocol](https://geminiprotocol.net/)
`pulsarss` is a multi-process crawler for RSS feeds, that collects and converts results into the static [gemtext](https://geminiprotocol.net/docs/gemtext.gmi) files; also aggregates an actual `index.gmi` file in the relevant folders organized by channel / item `pub_date`.
> [!NOTE]
> At this moment, `pulsarss` does not provide any built-in server. To read the data collected, use any server for static files listed in the [awesome-gemini](https://github.com/kr1sp1n/awesome-gemini#servers)
## Install
``` bash
cargo install pulsarss
```
## Launch
``` bash
pulsarss --source https://path/to/feed.rss --index index.gmi
```
### Options
``` bash
pulsarss --help
```
### Autostart
#### systemd
1. Install `pulsarss` by copy the binary compiled into the native system apps destination:
* Linux: `sudo install /home/user/.cargo/bin/pulsarss /usr/local/bin/pulsarss`
2. Create `systemd` configuration file:
``` pulsarss.service
# /etc/systemd/system/pulsarss.service
[Unit]
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=pulsarss
Group=pulsarss
# Uncomment for debug
# Environment="RUST_LOG=debug"
# Environment="NO_COLOR=1"
ExecStart=/usr/local/bin/pulsarss -s https://path/to/feed.rss -i index.gmi
StandardOutput=file:///home/pulsarss/debug.log
StandardError=file:///home/pulsarss/error.log
[Install]
WantedBy=multi-user.target
```
* example above requires new system user (`useradd -m pulsarss`)
3. Run in priority:
* `systemctl daemon-reload` - reload systemd configuration
* `systemctl enable pulsarss` - enable new service
* `systemctl start pulsarss` - start the process
* `systemctl status pulsarss` - check process launched