puppy is an example implementation of a tiny Web browser for educational purposes.

Overview

puppy

Run tests Run lint

puppy is an example implementation of a tiny Web browser for educational purposes.

puppy-browser

How to run puppy locally

You can run puppy program with the following command(s):

cargo run -- help

How to install puppy

You can install puppy by the following command(s):

cargo install --locked --path . --force

After you have successfully installed puppy, you can see help as follows:

puppy help

You can install shell completions as follows:

# in bash
eval "$(puppy completion bash)"

# in fish
puppy completion fish | source

How to run tests locally

You can run tests with the following command(s):

cargo test

How to speed up build process

You can cache files related to V8 as follows:

$ export RUSTY_V8_MIRROR=$HOME/.cache/rusty_v8
(...omitted...)
$ ./scripts/prepare-v8.sh
(...omitted...)
$ cargo build
(...omitted...)
Comments
  • Refactor some (#10)

    Refactor some (#10)

    Description

    TODO: Describe what you've done in your PR.

    Context

    TODO: Describe why you've made the PR. You can put a link for a ticket in Jira or an issue in GitHub here.

    Checklist

    • [ ] I opened a draft PR or added the [WIP] level if my PR is not ready for review.
    • [ ] I have reviewed the code by myself.
    • [ ] I have assigned an appropriate reviewer for the PR.
    • [ ] I have commented my code, particularly in hard-to-understand areas.
    • [ ] I have made corresponding changes to the documentation.
    • [ ] I have added tests enough to show how your code behaves and that your code works as expected.

    Additional Notes

    TODO: Describe any other information you'd like to mention.

    opened by lmt-swallow 0
  • Refactor some

    Refactor some

    Description

    This PR refactors some lines.

    Context

    N/A

    Checklist

    • [x] I opened a draft PR or added the [WIP] level if my PR is not ready for review.
    • [x] I have reviewed the code by myself.
    • [x] I have assigned an appropriate reviewer for the PR.
    • [x] I have commented my code, particularly in hard-to-understand areas.
    • [x] I have made corresponding changes to the documentation.
    • [x] I have added tests enough to show how your code behaves and that your code works as expected.

    Additional Notes

    N/A

    opened by lmt-swallow 0
  • Add DOM-related features

    Add DOM-related features

    Description

    N/A

    Context

    N/A

    Checklist

    • [x] I opened a draft PR or added the [WIP] level if my PR is not ready for review.
    • [x] I have reviewed the code by myself.
    • [x] I have assigned an appropriate reviewer for the PR.
    • [x] I have commented my code, particularly in hard-to-understand areas.
    • [x] I have made corresponding changes to the documentation.
    • [x] I have added tests enough to show how your code behaves and that your code works as expected.

    Additional Notes

    N/A

    opened by lmt-swallow 0
  • Restructure some parts

    Restructure some parts

    Description

    N/A

    Context

    N/A

    Checklist

    • [x] I opened a draft PR or added the [WIP] level if my PR is not ready for review.
    • [x] I have reviewed the code by myself.
    • [x] I have assigned an appropriate reviewer for the PR.
    • [x] I have commented my code, particularly in hard-to-understand areas.
    • [x] I have made corresponding changes to the documentation.
    • [x] I have added tests enough to show how your code behaves and that your code works as expected.

    Additional Notes

    N/A

    opened by lmt-swallow 0
  • Add v8 engine to run JavaScript in puppy-browser

    Add v8 engine to run JavaScript in puppy-browser

    Description

    This PR introduces V8 engine to puppy and enables to run scripts inside <script>. ダルくなってきているため雑にディレクトリ構造の修正もこの PR に纏めてしまった

    Context

    N/A

    Checklist

    • [x] I opened a draft PR or added the [WIP] level if my PR is not ready for review.
    • [x] I have reviewed the code by myself.
    • [x] I have assigned an appropriate reviewer for the PR.
    • [x] I have commented my code, particularly in hard-to-understand areas.
    • [x] I have made corresponding changes to the documentation.
    • [x] I have added tests enough to show how your code behaves and that your code works as expected.

    Additional Notes

    N/A

    opened by lmt-swallow 0
  • Improve miscellaneous

    Improve miscellaneous

    Description

    This PR improves miscellaneous.

    Context

    N/A

    Checklist

    • [x] I opened a draft PR or added the [WIP] level if my PR is not ready for review.
    • [x] I have reviewed the code by myself.
    • [x] I have assigned an appropriate reviewer for the PR.
    • [x] I have commented my code, particularly in hard-to-understand areas.
    • [x] I have made corresponding changes to the documentation.
    • [x] I have added tests enough to show how your code behaves and that your code works as expected.

    Additional Notes

    N/A

    opened by lmt-swallow 0
  • Add resource fetching

    Add resource fetching

    Description

    This PR adds the following:

    • resource fetching from local filesystem
    • resource fetching over networks.

    Context

    N/A

    Checklist

    • [x] I opened a draft PR or added the [WIP] level if my PR is not ready for review.
    • [x] I have reviewed the code by myself.
    • [x] I have assigned an appropriate reviewer for the PR.
    • [x] I have commented my code, particularly in hard-to-understand areas.
    • [x] I have made corresponding changes to the documentation.
    • [x] I have added tests enough to show how your code behaves and that your code works as expected.

    Additional Notes

    N/A

    opened by lmt-swallow 0
  • Add resource fetching

    Add resource fetching

    Description

    This PR adds the following:

    • resource fetching from local filesystem
    • resource fetching over networks.

    Context

    N/A

    Checklist

    • [x] I opened a draft PR or added the [WIP] level if my PR is not ready for review.
    • [x] I have reviewed the code by myself.
    • [x] I have assigned an appropriate reviewer for the PR.
    • [x] I have commented my code, particularly in hard-to-understand areas.
    • [x] I have made corresponding changes to the documentation.
    • [x] I have added tests enough to show how your code behaves and that your code works as expected.

    Additional Notes

    N/A

    opened by lmt-swallow 0
  • Add fundamental features

    Add fundamental features

    Description

    This PR implements fundamental features of puppy.

    Context

    N/A

    Checklist

    • [x] I opened a draft PR or added the [WIP] level if my PR is not ready for review.
    • [x] I have reviewed the code by myself.
    • [x] I have assigned an appropriate reviewer for the PR.
    • [x] I have commented my code, particularly in hard-to-understand areas.
    • [x] I have made corresponding changes to the documentation.
    • [x] I have added tests enough to show how your code behaves and that your code works as expected.

    Additional Notes

    N/A

    opened by lmt-swallow 0
  • Add a feature to render `p` tags

    Add a feature to render `p` tags

    Description

    This PR adds a feature to render p tags naively.

    Context

    N/A

    Checklist

    • [x] I opened a draft PR or added the [WIP] level if my PR is not ready for review.
    • [x] I have reviewed the code by myself.
    • [x] I have assigned an appropriate reviewer for the PR.
    • [x] I have commented my code, particularly in hard-to-understand areas.
    • [x] I have made corresponding changes to the documentation.
    • [x] I have added tests enough to show how your code behaves and that your code works as expected.

    Additional Notes

    N/A

    opened by lmt-swallow 0
  • Implement a tiny parser of HTML

    Implement a tiny parser of HTML

    Description

    This PR adds a tiny HTML parser. It oes not follow HTML specification though.

    Context

    N/A

    Checklist

    • [x] I opened a draft PR or added the [WIP] level if my PR is not ready for review.
    • [x] I have reviewed the code by myself.
    • [x] I have assigned an appropriate reviewer for the PR.
    • [x] I have commented my code, particularly in hard-to-understand areas.
    • [x] I have made corresponding changes to the documentation.
    • [x] I have added tests enough to show how your code behaves and that your code works as expected.

    Additional Notes

    N/A

    opened by lmt-swallow 0
  • Updated dependencies, support for other charsets, added more logging …

    Updated dependencies, support for other charsets, added more logging …

    …methods to console object

    Description

    Updated dependencies. Support for other charsets like ISO-8859-1 Added more logging method to console object like log, trace, error.

    Context

    Fix first impressions. When I tried this app, I tried to open google.com and got error (Google uses ISO-8859-1) Testing JS, first thing i types was console.log and got error as well. I believe a lot of people use above steps jus to check this app.

    Checklist

    • [x] I opened a draft PR or added the [WIP] level if my PR is not ready for review.
    • [x] I have reviewed the code by myself.
    • [x] I have assigned an appropriate reviewer for the PR.
    • [x] I have commented my code, particularly in hard-to-understand areas.
    • [x] I have made corresponding changes to the documentation.
    • [x] I have added tests enough to show how your code behaves and that your code works as expected.

    Additional Notes

    TODO: Describe any other information you'd like to mention.

    opened by bmxmiko 0
Owner
Takashi Yoneuchi
Software engineer with focus on Web technologies
Takashi Yoneuchi
Murasaki is a Fast, Secure, and Reliable Webkit based web browser.

Murasaki is a Fast, Secure, and Reliable Webkit based web browser. Table of Contents Goals Status Usage License Goals Security: Be secure, and not com

Moon Laboratories 5 Nov 17, 2021
An tiny web API for @QuarryProtocol

Warlock Warlock is a tiny web API layer around Quarry Protocol and has endpoints to deserialize Quarry accounts like quarries, miners, and rewarders t

Rohan Kapur 2 May 16, 2022
example of a full stack web app (backend and frontend) wrtiten in Rust

rust-fullstack-example An example of creating a full stack web application (backend and frontend) using Rust. Backend Go to ./backend and start the se

mario 41 Dec 16, 2022
mBrowser is a toy browser developed from scratch for learning purpose.

mBrowser is a toy browser developed from scratch for learning purpose.

Minh Quy 40 Oct 31, 2022
Wiz - A simple, frameless, lightweight browser for screenshots

Wiz, A simple, frameless, lightweight browser for screenshots. Intallation You can find the suitable installer for your system in the releases page. W

Justin Maximillian Kimlim 8 Dec 13, 2022
Search Confluence from Alfred and open results in your browser.

Alfred Confluence Workflow Search Confluence from Alfred and open results in your browser. Features Search Confluence from Alfred and open results in

Johan M. 26 Nov 7, 2022
Sauron is an html web framework for building web-apps. It is heavily inspired by elm.

sauron Guide Sauron is an web framework for creating fast and interactive client side web application, as well as server-side rendering for back-end w

Jovansonlee Cesar 1.7k Dec 26, 2022
Actix Web is a powerful, pragmatic, and extremely fast web framework for Rust.

Actix Web is a powerful, pragmatic, and extremely fast web framework for Rust.

Actix 16.2k Jan 2, 2023
Hot reload static web server for deploying mutiple static web site with version control.

SPA-SERVER It is to provide a static web http server with cache and hot reload. 中文 README Feature Built with Hyper and Warp, fast and small! SSL with

null 7 Dec 18, 2022
Code template for a production Web Application using Axum: The AwesomeApp Blueprint for Professional Web Development.

AwesomeApp rust-web-app More info at: https://awesomeapp.dev/rust-web-app/ rust-web-app YouTube episodes: Episode 01 - Rust Web App - Course to Produc

null 45 Sep 6, 2023
A highly customizable, full scale web backend for web-rwkv, built on axum with websocket protocol.

web-rwkv-axum A axum web backend for web-rwkv, built on websocket. Supports BNF-constrained grammar, CFG sampling, etc., all streamed over network. St

Li Junyu 12 Sep 25, 2023
Rust implementation of the `URLPattern` web API

urlpattern This crate implements the URLPattern web API in Rust. We aim to follow the specification as closely as possible. Contributing We appreciate

Deno Land 40 Dec 14, 2022
Implementation of the RealWorld backend API spec in Actix, Rust's powerful actor system and most fun web framework.

Actix codebase containing real world examples (CRUD, auth, advanced patterns, etc) that adheres to the RealWorld spec and API. ❗ (2021/05/13) This cod

Allen 475 Jan 2, 2023
Simple example of axum, sqlx with sqlite and utoipa (swagger) - without auth

axum_crud_api Simple example to learn creating CRUD rest apis in Rust with axum, sqlx with sqlite and utoipa (swagger) - without auth Also shows how t

null 2 Nov 12, 2022
A Rust web framework

cargonauts - a Rust web framework Documentation cargonauts is a Rust web framework intended for building maintainable, well-factored web apps. This pr

null 179 Dec 25, 2022
A Rust library to extract useful data from HTML documents, suitable for web scraping.

select.rs A library to extract useful data from HTML documents, suitable for web scraping. NOTE: The following example only works in the upcoming rele

Utkarsh Kukreti 829 Dec 28, 2022
A Google-like web search engine that provides the user with the most relevant websites in accordance to his/her query, using crawled and indexed textual data and PageRank.

Mini Google Course project for the Architecture of Computer Systems course. Overview: Architecture: We are working on multiple components of the web c

Max 11 Aug 10, 2022
A rust web framework with safety and speed in mind.

darpi A web api framework with speed and safety in mind. One of the big goals is to catch all errors at compile time, if possible. The framework uses

null 32 Apr 11, 2022
A web framework for Rust.

Rocket Rocket is an async web framework for Rust with a focus on usability, security, extensibility, and speed. #[macro_use] extern crate rocket; #[g

Sergio Benitez 19.4k Jan 4, 2023