Skip to content
/ Maze Public

A simple web browser and server for the encrypted web.

License

Notifications You must be signed in to change notification settings

blmayer/Maze

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Maze

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.

Compiling the whole project

Simply change to the Maze directory and run:

make

Getting binaries

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.

Installing binaries and libraries

Run make install with root privileges, it will install under /usr/local/.

Dependencies

  • A C compiler; &
  • make.

The way it works, or tries to

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.

Compiling

To compile this project clone this repository or download all files, change to the Maze directory and run the command:

make maze

Running Maze

Type maze <website> in your commandline, eg. maze www.google.com.

libwebng

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.

Compiling

Simply run make libs.

Linking it against your programs

After installed just follow the conventional way, add -lwebng to your linker flags.

Meta

Created by: Brian Mayer - [email protected] Inital commit: Mar, 14, 2018 Distributed under The GNU GPL v2. See LICENSE for more information.

Current work

  • Making this work

To-do

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.

Contributing

Check the contributing file for details, but, in advance, it is pretty intuitive and straightforward.

Notes

MacOS

  • 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.

Windows

  • Compiling on Windows with Cygwin does not give any warning, but at run time there are several stack traces, I will investigate that.

About

A simple web browser and server for the encrypted web.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published