An open API service indexing awesome lists of open source software.

https://github.com/umutsevdi/brauzer

A graphical web browser from scratch in C for a variety of alternative web protocols
https://github.com/umutsevdi/brauzer

browser c ftp ftp-client gemini gemini-client gemini-protocol gopher gopher-client gtk gtk4 http http-client libadwaita web-browser

Last synced: about 1 month ago
JSON representation

A graphical web browser from scratch in C for a variety of alternative web protocols

Awesome Lists containing this project

README

        



Brauzer | Браузер



A web browser from scratch in C programming language that implements
various web protocols.

Being actively developed by
Umut Sevdi

## What is Brauzer
Brauzer is a simple web browser that can communicate through the following protocols.

* HTTP/HTTPS
* Gopher
* Gemini

It can currently parse Gopher and Gemini files as of 05/11/2023.
I would like to build a GUI for the Brauzer in the future.

## Demo Videos

* HTTP/HTTPS
![HTTPS](screenshot/https.GIF)
* Gemini
![Gemini](screenshot/gemini.GIF)
* Gopher
![Gopher](screenshot/gopher.GIF)

### Installation

Requirements:
* [OpenSSL](https://packages.debian.org/bookworm/openssl)
* [libglib2.0-0](https://packages.debian.org/bookworm/libglib2.0-0)

The current version does not require the following packages, But the future versions will require:

* [libgtk-4](https://packages.debian.org/bookworm/libgtk-4-1)
* [libadwaita](https://packages.debian.org/bookworm/libs/libadwaita-1-0)

1. Clone the repository.

```sh
git clone https://github.com/umutsevdi/brauzer.git
```

2. Compile the program.
```sh
make
```

### Status

This project is currently a work in progress.
#### To-do List:

- [x] TCP Session Management
- [x] TLS/SSL System
- [x] Protocol Spesific Calls
- [x] User Agent
- [x] URI Parser
- [x] CLI Interface
- [ ] **Supported Protocols**:
- [ ] HTTP
- [x] HTTP 1.1 Polling
- [x] Success
- [x] Header Parser
- [ ] Post/Put (Partially)
- [ ] Redirect
- [ ] HTML Parser
- [ ] Link Analysis and Installation
- [x] Gemini:
- [x] Success
- [x] Polling
- [x] Input
- [x] Redirect
- [x] Gemtext Parser
- [x] Gopher:
- [x] Protocol
- [x] Parser
- [ ] FTP/SFTP:

## License

Distributed under the GPL License. See `LICENSE` for more information.

## Contact

Feel free to contact me for any further information or suggestions.

Project: [umutsevdi/brauzer](https://github.com/umutsevdi/brauzer)

Developed by Umut Sevdi