JustDoom / webx

An alternative for the World Wide Web - browse websites such as buss://yippie.rizz made in HTML, CSS and Lua. Custom web browser, custom HTML rendering engine, custom search engine, and more.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Bussin Web X

An alternative to the World Wide Web (http(s)://), with:

  • its own custom browser written in Rust with GTK,
  • custom HTML, CSS and Lua engine (yup, no javascript! 🎉),
  • custom DNS allowing websites such as buss://ohio.rizz,
  • and search engine (wip).

Preview of buss://register.it, the frontend for registering domains

File structure

  • /napture - The source code for the browser Bussin Napture, used to view buss:// sites.
  • /dns - The source code for the DNS (Domain Name System), used for the API at https://api.buss.lol
  • registrar - The source code for buss://register.it, frontend for https://api.buss.lol made for Bussin Web X. This can also serve as an example for how buss:// sites are made.

Download

For now, you have to download Rust, open the /napture folder, and do cargo run. Binaries will be available with the official release

Register website

To register a website, navigate to buss://register.it through Bussin Napture.

You will see this interface. Preview of buss://register.it, the frontend for registering domains

What you need is the Publish section.

  • for the domain name, choose whatever you want. (example: duckduckgo)
  • for the TLD, choose one displayed above the Result will appear... label. (example: rizz)
  • for the IP, you can either use:
    • an IP that serves /index.html on port 80
    • a GitHub repository that has index.html, outside any folder. (example: registrar)

Don't worry! The IP doesn't have to be valid, and you can save the domain for later!

WARNING: After creating the domain, you'll be shown a secret key. Please make sure to save it as you will need it to Update/Delete your domain.

HTML guide

The supported tags are: head, title, link, meta, script, h1-h6, div, p, ul, ol, li, div, button, hr, img, input, textarea, button, select, option. Keep in mind their syntax may be different if you're already familiar with HTML5 (i.e. link is used for the tab icon). Please check registrar or /napture/test/index.html for examples.

CSS guide

The supported properties are:

  • border-color
  • border-width
  • border-style
  • border-radius
  • padding
  • direction (row | column)
  • align-items: (fill | start | center | end)
  • gap
  • color
  • font-size
  • font-height
  • font-family
  • font-weight (ultralight | light | normal | bold | ultrabold | heavy)
  • underline (none | single | double | low | error)
  • underline-color
  • overline (none | single)
  • overline-color
  • strikethrough (false | true)
  • strikethrough-color
  • margin-left
  • margin-right
  • margin-top
  • margin-bottom
  • width (only on <input> & <textarea>)
  • height (only on <input> & <textarea>)

Properties whose value type wasn't specified are either measured in px, or are colors (#fff, red, etc.)

Lua guide

For those coming from the traditional web...

- 1. const test = document.querySelector(".classExample");
- 2. test.textContent = "abc";
- 3. (async () => {})()
- 4. test.href = "https://ok.test"
- 5. console.log(test.href)
- 6. test.addEventListener("click", () => {})
- 7. test.addEventListener("submit", () => {})
+ 1. local test = get("classExample")
+ 2. test.set_content("abc");
+ 3. coroutine.wrap(function())
+ 4. test.set_href("buss://register.it")
+ 5. print(test.get_href())
+ 6. test.on_click(function())
+ 7. test.on_submit(function())

I believe you'd get a better understand if you explored the registrar repository's script.lua.

NOTE: Bussin Napture doesn't support buss:// redirects yet. They will be added in the official release.

WIP

The rest of the README is work in progress. Thanks for reading!

About

An alternative for the World Wide Web - browse websites such as buss://yippie.rizz made in HTML, CSS and Lua. Custom web browser, custom HTML rendering engine, custom search engine, and more.


Languages

Language:Rust 85.6%Language:HTML 5.9%Language:JavaScript 5.7%Language:CSS 2.1%Language:Lua 0.7%