Merge pull request #1 from alamin655/mybr
Browse files- CONTRIBUTING.org +15 -13
- README.org +18 -18
- goals.org +26 -28
CONTRIBUTING.org
CHANGED
@@ -1,24 +1,26 @@
|
|
1 |
-
* Things to
|
2 |
|
3 |
** Knowledge Required
|
4 |
-
- Rust basics
|
5 |
-
- Actix-web crate basics
|
6 |
-
- Tokio crate and async/await
|
7 |
-
- Reqwest crate basics
|
8 |
-
- Serde and serde_json crate basics
|
9 |
-
- fake_useragent crate basics
|
10 |
-
- pyo3/hlua/rlua crates basics
|
11 |
|
12 |
** Guidelines
|
13 |
|
14 |
- Please be patient.
|
15 |
|
16 |
-
- Treat everyone with respect
|
17 |
|
18 |
-
- Document your code properly with
|
19 |
|
20 |
-
- Provide a brief description of
|
21 |
|
22 |
-
- Provide an
|
23 |
|
24 |
-
*NOTE:* The rolling branch is where all
|
|
|
|
|
|
1 |
+
* Things to Consider Before Contributing
|
2 |
|
3 |
** Knowledge Required
|
4 |
+
- Rust basics
|
5 |
+
- Actix-web crate basics
|
6 |
+
- Tokio crate and async/await
|
7 |
+
- Reqwest crate basics
|
8 |
+
- Serde and serde_json crate basics
|
9 |
+
- fake_useragent crate basics
|
10 |
+
- pyo3/hlua/rlua crates basics
|
11 |
|
12 |
** Guidelines
|
13 |
|
14 |
- Please be patient.
|
15 |
|
16 |
+
- Treat everyone with respect -- "give respect and take respect."
|
17 |
|
18 |
+
- Document your code properly with Rust coding conventions in mind.
|
19 |
|
20 |
+
- Provide a brief description of the changes you made in the pull request.
|
21 |
|
22 |
+
- Provide an appropriate header for the pull request.
|
23 |
|
24 |
+
*NOTE:* The rolling branch is where all contributions should go. In other words, it is the working branch for this project.
|
25 |
+
|
26 |
+
We appreciate any contributions and suggestions to help improve the Websurfx project. Please keep in mind the above requirements and guidelines before submitting a pull request.
|
README.org
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
* Websurfx
|
2 |
|
3 |
-
|
4 |
|
5 |
* Preview
|
6 |
|
@@ -18,66 +18,66 @@ A lightening fast, privacy respecting, secure [[https://en.wikipedia.org/wiki/Me
|
|
18 |
|
19 |
* Installation and Testing
|
20 |
|
21 |
-
To
|
22 |
|
23 |
#+begin_src shell
|
24 |
-
git clone https://
|
25 |
cd websurfx
|
26 |
cargo build
|
27 |
./target/debug/websurfx --port 8080
|
28 |
#+end_src
|
29 |
|
30 |
-
If you want to
|
31 |
|
32 |
#+begin_src shell
|
33 |
-
git clone https://
|
34 |
cd websurfx
|
35 |
git checkout rolling
|
36 |
cargo build
|
37 |
./target/debug/websurfx --port 8080
|
38 |
#+end_src
|
39 |
|
40 |
-
|
41 |
|
42 |
-
*Important Note:*
|
43 |
|
44 |
* More Contributers Wanted
|
45 |
|
46 |
-
|
47 |
|
48 |
* FAQ (Frequently Asked Questions)
|
49 |
|
50 |
** Why Websurfx?
|
51 |
|
52 |
-
The main goal of the project is to provide a fast, secure and privacy
|
53 |
|
54 |
** Why AGPLv3?
|
55 |
|
56 |
-
|
57 |
|
58 |
** Why Rust?
|
59 |
|
60 |
-
Rust
|
61 |
|
62 |
* Contributing
|
63 |
|
64 |
-
Contributions are welcome. It
|
65 |
|
66 |
-
** Not a developer but still want to contribute
|
67 |
|
68 |
-
|
69 |
|
70 |
** Developer
|
71 |
|
72 |
-
If you are developer, have a look at the [[file:CONTRIBUTING.org][CONTRIBUTING.org]] document for more information.
|
73 |
|
74 |
* License
|
75 |
|
76 |
-
|
77 |
|
78 |
* Credits
|
79 |
|
80 |
-
|
81 |
|
82 |
-
- [[https://
|
83 |
- [[https://gitlab.com/johannesrexx][johannes rex]]
|
|
|
1 |
* Websurfx
|
2 |
|
3 |
+
Websurfx is a lightning-fast, privacy-respecting, secure [[https://en.wikipedia.org/wiki/Metasearch_engine][meta search engine]] (pronounced as websurface or web-surface /wɛbˈsɜːrfəs/.) written in Rust. It provides a fast and secure search experience while respecting user privacy.
|
4 |
|
5 |
* Preview
|
6 |
|
|
|
18 |
|
19 |
* Installation and Testing
|
20 |
|
21 |
+
To get started with Websurfx, clone the repository and run it using the following commands:
|
22 |
|
23 |
#+begin_src shell
|
24 |
+
git clone https://github.com/neon-mmd/websurfx.git
|
25 |
cd websurfx
|
26 |
cargo build
|
27 |
./target/debug/websurfx --port 8080
|
28 |
#+end_src
|
29 |
|
30 |
+
If you want to use the rolling/edge branch, run the following commands instead:
|
31 |
|
32 |
#+begin_src shell
|
33 |
+
git clone https://github.com/neon-mmd/websurfx.git
|
34 |
cd websurfx
|
35 |
git checkout rolling
|
36 |
cargo build
|
37 |
./target/debug/websurfx --port 8080
|
38 |
#+end_src
|
39 |
|
40 |
+
Once you have started the server, open your preferred web browser and navigate to http://127.0.0.1:8080 to start using Websurfx.
|
41 |
|
42 |
+
*Important Note:* Please be aware that the project is still in the testing phase and is not ready for production use. Do not refresh the page excessively or make too many requests, as this could result in IP blocking.
|
43 |
|
44 |
* More Contributers Wanted
|
45 |
|
46 |
+
We are looking for more willing contributors to help grow this project. For more information on how you can contribute, check out the [[file:goals.org][goals.org]] file and the [[file:CONTRIBUTING.org][CONTRIBUTING.org]] file for guidelines and rules for making contributions.
|
47 |
|
48 |
* FAQ (Frequently Asked Questions)
|
49 |
|
50 |
** Why Websurfx?
|
51 |
|
52 |
+
The main goal of the Websurfx project is to provide a fast, secure, and privacy-focused [[https://en.wikipedia.org/wiki/Metasearch_engine][meta search engine]]. While there are many meta search engines available, they do not always guarantee the security of their search engine, which is essential for ensuring privacy. For example, memory vulnerabilities can leak private or sensitive information, which is never good. Websurfx is written in Rust, which guarantees memory safety and eliminates such problems. Many meta search engines also lack key features such as advanced image search, which is required by many graphic designers, content creators, and others. Websurfx aims to provide these features and others, such as proper NSFW blocking, to improve the user experience.
|
53 |
|
54 |
** Why AGPLv3?
|
55 |
|
56 |
+
Websurfx is released under the *AGPLv3* license to ensure that the source code remains open and transparent. This helps to prevent the inclusion of spyware, telemetry, or other malicious code in the project. *AGPLv3* is a strong copyleft license that ensures the source code of the software remains open and available to everyone, including any modifications or improvements made to the code.
|
57 |
|
58 |
** Why Rust?
|
59 |
|
60 |
+
Rust was chosen as the programming language for Websurfx due to its memory safety features, which can help prevent vulnerabilities and make the codebase more secure. Rust is also faster than C++, which helps to make Websurfx fast and responsive. In addition, Rust's ownership and borrowing system allows for safe concurrency and thread safety in the codebase.
|
61 |
|
62 |
* Contributing
|
63 |
|
64 |
+
Contributions are welcome from anyone. It doesn't matter who you are; you can still contribute to the project in your way.
|
65 |
|
66 |
+
** Not a developer but still want to contribute?
|
67 |
|
68 |
+
Check out this [[https://youtu.be/FccdqCucVSI][video]] by Mr. Nick on how to contribute.
|
69 |
|
70 |
** Developer
|
71 |
|
72 |
+
If you are a developer, have a look at the [[file:CONTRIBUTING.org][CONTRIBUTING.org]] document for more information.
|
73 |
|
74 |
* License
|
75 |
|
76 |
+
Websurfx is available under the [[file:LICENSE][AGPLv3]] license.
|
77 |
|
78 |
* Credits
|
79 |
|
80 |
+
We would like to thank the following people for their contributions and support:
|
81 |
|
82 |
+
- [[https://github.com/XFFXFF][zhou fan]]
|
83 |
- [[https://gitlab.com/johannesrexx][johannes rex]]
|
goals.org
CHANGED
@@ -1,57 +1,55 @@
|
|
1 |
* TODO Goals for v0.1.0
|
2 |
|
3 |
-
- [ ] Add unit tests, integration test, doc tests
|
4 |
|
5 |
-
- [ ] Add code to remove
|
6 |
|
7 |
-
- [ ] Add code to disallow user
|
8 |
|
9 |
-
- [ ]
|
10 |
|
11 |
-
- [ ] Add ability to change
|
12 |
|
13 |
=For example:=
|
14 |
|
15 |
-
If
|
16 |
|
17 |
-
- [ ]
|
18 |
|
19 |
-
- [ ] Add
|
20 |
|
21 |
-
- [ ]
|
22 |
|
23 |
-
- [ ] Add search engine logo to index page and
|
24 |
|
25 |
-
- [X] Write rust.yml for
|
26 |
|
27 |
-
- [X]
|
28 |
|
29 |
-
- [X] Add FAQ section
|
30 |
|
31 |
-
- [X] Add logging to websurfx project.
|
32 |
|
33 |
-
- [X]
|
34 |
|
35 |
-
- [X] Add
|
36 |
|
37 |
-
- [X] Add
|
38 |
|
39 |
-
- [X]
|
40 |
-
|
41 |
-
- [X] Add basic handlebars pages and theme with catppuccin colorscheme.
|
42 |
|
43 |
-
* Goals for
|
44 |
|
45 |
-
-
|
46 |
|
47 |
-
-
|
48 |
|
49 |
-
-
|
50 |
|
51 |
-
- Add advanced search functionality and dropdown menu for it.
|
52 |
|
53 |
-
- Add more categories to search engine's search page
|
54 |
|
55 |
-
- Add advanced image functionality
|
56 |
|
57 |
-
- Add GPT integration
|
|
|
1 |
* TODO Goals for v0.1.0
|
2 |
|
3 |
+
- [ ] Add unit tests, integration test, and doc tests to the project source code.
|
4 |
|
5 |
+
- [ ] Add code to remove NSFW content from search results using a blocklist.
|
6 |
|
7 |
+
- [ ] Add code to disallow user from searching for sensitive content (similar functionality to swisscows search engine) if strict safe search is turned on.
|
8 |
|
9 |
+
- [ ] Improve error handling to handle scraping errors, reqwest errors, and other issues.
|
10 |
|
11 |
+
- [ ] Add the ability for users to change the colorscheme of the page.
|
12 |
|
13 |
=For example:=
|
14 |
|
15 |
+
If a simple theme is used, then there should be the option of 9 different colorschemes to choose from, such as Catppuccino-Mocha, Solarized Dark, Nord, etc.
|
16 |
|
17 |
+
- [ ] Implement random delays and behaviors to emulate human behavior to evade IP blocking.
|
18 |
|
19 |
+
- [ ] Add Python/Lua configuration options to give more control to the user (server maintainer/administrator).
|
20 |
|
21 |
+
- [ ] Create a settings page to allow users to configure the search engine and save their preferences using cookies.
|
22 |
|
23 |
+
- [ ] Add a search engine logo to the index page and the navbar.
|
24 |
|
25 |
+
- [X] Write a rust.yml file for automated testing of the project.
|
26 |
|
27 |
+
- [X] Improve documentation for the project source code.
|
28 |
|
29 |
+
- [X] Add a FAQ section to the README.org file to answer common questions about the project.
|
30 |
|
31 |
+
- [X] Add logging to the websurfx project.
|
32 |
|
33 |
+
- [X] Generate random user agents to protect user privacy.
|
34 |
|
35 |
+
- [X] Add DuckDuckGo and at least one Searx engine instance as upstream providers.
|
36 |
|
37 |
+
- [X] Add pagination support for search results.
|
38 |
|
39 |
+
- [X] Create basic Handlebars pages and theme with Catppuccino colorscheme.
|
|
|
|
|
40 |
|
41 |
+
* Goals for future development
|
42 |
|
43 |
+
- Replace Handlebars with the faster templating engine /Tera/.
|
44 |
|
45 |
+
- Add more upstream search engines.
|
46 |
|
47 |
+
- Implement dorking support (like Google).
|
48 |
|
49 |
+
- Add advanced search functionality and a dropdown menu for it.
|
50 |
|
51 |
+
- Add more categories to the search engine's search page, such as images, files, news, and maps.
|
52 |
|
53 |
+
- Add advanced image functionality for content creators, video editors, etc.
|
54 |
|
55 |
+
- Add GPT integration, taking inspiration from the Langchain module of Python or incorporating it using pyo3, and give users the choice to add an API key. Giving users the choice is important, as some people may be against AI, and this will ensure that those users who don't want to use GPT can disable it by not adding an API key.
|