1 个不稳定版本
0.0.0 | 2023年8月19日 |
---|
#29 在 #v8
7KB
browserjs 是早期工作,请自行承担风险使用。
并非所有存在的内容都有文档,也并非所有有文档的内容都已实现。
这是一个实验性项目,目前尚未定义或承诺最小Rust版本(MSRV)。一旦这个项目在生产环境中可用(请自行承担风险),我们将定义一个。
愿望清单
梦想API
from browserjs import Browser
browser = Browser(('chrome', '115'))
browser.set_dom("""<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Hello World! Site Title</title>
</head>
<body>
<h1>Hello World!</h1>
</body>
</html>""")
page_title = browser.eval_js("""document.title""")
assert(page_title == "Hello World! Site Title")
page_title = browser.eval_js("""document.write("foo"), document.title""")
assert(page_title == "")
ua = browser.eval_js("""navigator.userAgent""")
assert(ua == 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36')
并不是真正制作一个“虚假”的浏览器。因此,如果你有一个包含JavaScript的DOM,它将不会自动加载,除非你让它评估嵌入的js。
某些功能也只有在您用自己逻辑配置时才启用。例如,只有当您指定其逻辑时,才支持XHR请求,这些请求默认会被阻止。
待办事项
- 集成V8引擎
- 用它制作一个小型的Rust Hello Eval库,该库已经使用Rust功能
- 制作一个Python包装器
- 不确定PyO3在这里是否能很好地工作,因为与V8引擎的本地绑定... 我们拭目以待
贡献
🎈 感谢您的帮助,提高这个项目!我们非常高兴有您的加入!我们有一个[贡献指南][contributing],帮助您参与 browserjs
项目。
如果您想为这个项目做出贡献,但还不知道如何用Rust编程,您可以从学习Rust开始,目标是尽快通过使用 "Rust 101 学习指南" 作为您的学习伴侣来为 browserjs
做出贡献。Glen 也可以作为导师或教师被雇佣,以提供付费的一对一课程和其他类似咨询服务。您可以在 https://www.glendc.com/ 找到他的联系信息。
许可证
本项目采用双重许可,即 [MIT许可证][mit-license] 和 [Apache 2.0许可证][apache-license]。
贡献
除非您明确声明,否则您提交的任何有意包含在 browserjs
中的贡献,均应作为 [MIT][mit-license] 和 [Apache 2.0][apache-license] 许可,不附加任何其他条款或条件。
赞助商
browserjs 是一种 完全免费、开源的软件,开发和维护它需要大量的努力和时间。
通过成为 赞助商 来支持此项目。
赞助商帮助我们继续维护和改进 browserjs
以及其他自由和开源(FOSS)技术。这也帮助我们创建了如 https://github.com/plabayo/learn-rust-101 等教育内容,以及其他开源库,如 https://github.com/plabayo/tower-async。
赞助商将获得福利,并根据您常规的贡献程度,您还可以依赖我们提供支持和咨询。
如果您计划将 browserjs 用于商业转售或打包活动,您需要成为足够高等级的赞助商,以便尽管它具有商业许可证(BSL),您仍可为此目的使用它。
常见问题解答(FAQ)
Q:这个库不起作用!
这是一个实验性项目,使用风险自担。目前,这完全是出于我们自己的目的,如果您用它有效,那很好。
话虽如此,您可以通过 GitHub 或电子邮件联系我们,看看它如何对您有益,或者您如何能够 贡献。