diff --git a/README.md b/README.md index edddac3..ec2704c 100644 --- a/README.md +++ b/README.md @@ -4,17 +4,58 @@

-A graphical web browser from scratch in C programming language that implements +A web browser from scratch in C programming language that implements various web protocols.
Being actively developed by Umut Sevdi -## Definition +## What is Brauzer +Brauzer is a simple web browser that can communicate through the following protocols. +* HTTP/HTTPS +* Gopher +* Gemini +I would like to build a graphical user interface with GTK framework for this project. +It can currently parse Gopher and Gemini files as of 05/11/2023. -### Status: WORK IN PROGRESS -#### Back-end: + +## 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) + + 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 work in progress. +#### To-do List: - [x] TCP Session Management - [x] TLS/SSL System @@ -41,33 +82,6 @@ various web protocols. - [x] Protocol - [x] Parser - [ ] FTP/SFTP: -#### User Interface: -**STATUS**: Not started - - -

- -### Installation - -Requirements: -* [OpenSSL](https://packages.debian.org/bookworm/openssl) -* [libglib2.0-0](https://packages.debian.org/bookworm/libglib2.0-0) - - 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 -``` ## 5. License diff --git a/include/br_txt.h b/include/br_txt.h index b40fb52..a791135 100644 --- a/include/br_txt.h +++ b/include/br_txt.h @@ -37,7 +37,7 @@ typedef struct { char* URI; } BrGemtextItem; #define BrGemtextItem_unwrap(r) \ - "type:%5s\tURI:%-30s\t%s\n", BR_GEMTXT_S((r)->type), \ + "|type:%5s|\tURI:%-30s|\t%s\n", BR_GEMTXT_S((r)->type), \ (r)->URI != NULL ? (r)->URI : "", (r)->line typedef struct { diff --git a/screenshot/gemini.GIF b/screenshot/gemini.GIF new file mode 100644 index 0000000..2d32e71 Binary files /dev/null and b/screenshot/gemini.GIF differ diff --git a/screenshot/gopher.GIF b/screenshot/gopher.GIF new file mode 100644 index 0000000..40163bf Binary files /dev/null and b/screenshot/gopher.GIF differ diff --git a/screenshot/https.GIF b/screenshot/https.GIF new file mode 100644 index 0000000..db7a468 Binary files /dev/null and b/screenshot/https.GIF differ diff --git a/src/test.c b/src/test.c index de00f86..439d773 100644 --- a/src/test.c +++ b/src/test.c @@ -167,6 +167,7 @@ void test_br_http_response_new_when_invalid_headers() BrHttpResponse r = {0}; assert(br_http_response_new(&s, &r) == BR_PRT_HTTP_OK); } + int main(void) { TEST(is_ip);