Немного о моём кроссплатформенном "браузере" Compy и что он может сейчас, и да в нем нельзя открыть web странички.
Всем доброго времени суток. Хочу коротко рассказать о своём pet project под названием Compy.
Но сначала немного расскажу о себе, чтобы вы понимали как я к этому пришёл.
Во время когда я только начал учился программировать я учился в школе, сначала изучил паскаль потом стал изучать с++ и изучал его долго, параллельно трогая и изучая другие языки, но с++ позволяли познать основы основ — писал игрушки в консоли разукрашивая текст с использованием системного api (это была винда, брр), я писал работу с сокетами (tcp udp) и делал сервер который раздавал "задачи" клиентам.
Когда я впервые захотел сделать сайт я полез смотреть как реализовать http (то что он работает поверх tcp я знал) и когда я увидел что это текстовый протокол я был шокирован и растерян — как так вся веб паутина юзает текст, хотя все те же данные можно было бы гораздо эффективнее закодировать в структуры...
тогда я отказался от создания сайта и с тех пор не люблю веб, хотя esni и http3 должны немного его облагородить.
Через какое то время я поднял дома два сайта на разных машинах, уже не помню что это было, купил доменное имя, и когда я хотел прописать в dns для поддоменов ip и порты — я понял что ни dns ни http не умеет такого — то есть сайт может быть на 80 порту или 443 и точка, а если я хочу кастомный порт то должен сам прописывать его в url, или я должен добавлять дополнительную точку отказа в виде реверс прокси!!!(
И я понял что хочу создать "новый интернет" где не будет бесполезной избыточности и десятки слоёв абстракции и лишних точек отказа.
И вот он мой кроссплатформенный браузер Compy:
Он способен:
- Выполнять бизнес логику на любом(почти) языке программирования (сейчас это только с++/python/урезанный js) а не только js (да про то что в попытке исправить ситуацию они сделали WASM я знаю)
- Использовать нативный gui, а не использовать движки для отрисовки (вбивайте в поисковик Skia)
- Использовать связку доменного имени с любыми портами
- Если вам нужен свой протокол — пожалуйста
- Его можно использовать для создания своих single app — как и с electron
Также я постарался заложить идеи что за каждым "url'лом" скрывается не не сайт, а приложение — то есть как и в Android оно скачивается хранится и при надобности обновляется.
Запрос прав — реализовать не успел.
Если есть желание посмотреть, попробовать что-то сделать, или помочь в развитии прошу в git)
Warning — код не идеальный писался как POC и 2 раза был переписан с 0.
https://gitlab.com/Andryski/Nhtml/
Также были интересные статьи на хабре по теме "что не так с вебом"- “Пора убить веб” и “Что последует за вебом?”
Если вам интересны детали реализации или размышления "что с вебом не так" пишите — напишу отдельную статью :)