Maze is a project of creating tools for a safer web, it brings a web browser written in C. These B2B (Beginner to Beginner) applications aims at helping students to learn how clients and servers interact since the creator has insufficient knowledge of C programming. Although simplicity is the main feature of Maze, we plan to make it RFC 2616 compliant and as complete as possible.
Its components are:
- Maze: The browser;
- webng: a shared library; &
- randomstr: a random strings generator.
Simply change to the Maze directory and run:
make
So far binaries have not been compiled, but when they are done they will be found under bin/<$arch>/
, in the future I plan to support more systems.
Run make install
with root privileges, it will install under /usr/local/.
- A C compiler; &
- make.
The main source files, are located in src/*, there are some utilities that must be built together. It resembles Servrian in a certain way, it's modular: we have separated files for each HTTP request, for now, get.c.
To compile this project clone this repository or download all files, change to the Maze directory and run the command:
make maze
Type maze <website>
in your commandline, eg. maze www.google.com
.
Auxiliary shared library for encrypting and decrypting requests, parsing URLs, requests and responses &c. To discover what it provides please inspect the file src/webng/webng.h.
Simply run make libs.
After installed just follow the conventional way, add -lwebng
to your linker flags.
Created by: Brian Mayer - [email protected] Inital commit: Mar, 14, 2018 Distributed under The GNU GPL v2. See LICENSE for more information.
- Making this work
There are lots of things to do, the ones in my mind now are listed below.
- Creating a graphical interface;
- Support PUT, DELETE and UPDATE requests (I don't know what for);
- Support wide characters;
- Use encryption for logged in users; &
- Pipe logging.
Check the contributing file for details, but, in advance, it is pretty intuitive and straightforward.
- Compiling on MacOS with the default C compiler, clang, may give warnings, but compilation finishes without errors;
- You may need to specify the include path to the openssl library because it is, sometimes, in a different place.
- Compiling on Windows with Cygwin does not give any warning, but at run time there are several stack traces, I will investigate that.