LINUX.ORG.RU

Разработан новый проект, нужны идеи применения и единомышленники.

 , , ,


0

4

Привет ребята, уже как 2 года я разрабатываю свой проект, который позволяет осуществлять связь между компьютерами не важно где они находятся, в пределах одной сети или же на разных континентах. По своей сути это система межПРОЦЕССного взаимодействия(IPC - RPC), при этом процессы могут находится как на локальном компьютере так и на разных компьютеров. Связь между компьютерами предоставляется как путем создания прямого туннеля между компьютерами без использования сервера(сервер нужен только на момент создания туннеля), так и через сервер. Моя библиотека работает протестирована, есть версия для винды и для линуха, проект полность open source. Но я до сих пор не могу придумать как применить эту библиотеку. Думал различные варианты, но либо получалось слишком специализированно, либо глобально и требовались веб разработчики и единомышленники, которые были бы согласны принимать участие в развитии проекта. Я буду очень рад если кто то изъявит заинтересованность, и предоставит идеи для дальнейшего развития со своим участием. Для ознакомления проект находится на github.com вот ссылка: https://github.com/volok-aleksej/twainet

А чем оно лучше того же zmq?

Norgat ★★★★★ ()

А с чем знакомиться? У проекта нет Readme, вместо документации - мусор *.jpg!!!

sigurd ★★★★ ()

не следует тянуть в рот репозиторий всякую херню типа ехешников.

anonymous ()

Но я до сих пор не могу придумать как применить эту библиотеку.

А для чего делали тогда?

eao197 ★★★★★ ()

Не доверяю я тебе. Наверняка код пишешь так же, как и в ОП.

anonymous ()

автор, я ессичессно нихера не понял из того, что увидел в репе. от доков только какие-то схемы. Что? Где? Зачем? Это самодостаточный «deamon» или на нем можно, например, чатек построить с возможностью массового прослушивания Моцарта?

anonymous ()

Уже есть zmq. Мне кажется или у тебя там класс зовут «Димон»?

chuppa ()

Вам бы C++ подучить не помешало бы:

data = new char[datalen];
...
delete data;
Это в файлике include/module.h. Там еще есть ручная работа с указателями, которая будет небезопасной, если у вас нет явного запрета исключений на уровне ключей компилятора.

Прогоните свой проект через Coverity — для OpenSource проектов это бесплатно. Наверняка кучу багов найдете и исправите.

eao197 ★★★★★ ()

А вот это зачем:

extern "C"
{
	namespace Twainet
        {
?

eao197 ★★★★★ ()
Ответ на: комментарий от eao197

Coverity — для OpenSource проектов это бесплатно

обана. А где? Как можно прогнать? я помню у них сайт на котором хер что найдешь.

anonymous ()
Ответ на: комментарий от anonymous

Вот здесь нужно смотреть: https://scan.coverity.com/ Говорят, что там и инструкции есть. Но сам я не делал, мне коллега проверку через Coverity настраивал и прогонял.

ЗЫ. Вот здесь еще можно глянуть: http://eax.me/c-static-analysis/

eao197 ★★★★★ ()
Последнее исправление: eao197 (всего исправлений: 1)

Я буду очень рад если кто то изъявит заинтересованность, и предоставит идеи для дальнейшего развития со своим участием.

Сложно проявлять интерес к тому-не-знаю-чему. А узнать тяжело, потому что внятной документации - нет. У тебя там какая-то помесь из c++ и js , или это две не связанные между собой реализации одного и того же протокола ?

По своей сути это система межПРОЦЕССного взаимодействия(IPC - RPC), при этом процессы могут находится как на локальном компьютере так и на разных компьютеров.

Нужен список фич, что есть и чего в твоей системе нет по сравнению с другими реализациями IPC. Ведь всё познается в сравнении.

Нужен пример hello world программы, которая пользуется твоей системой.

Manhunt ★★★★★ ()
Последнее исправление: Manhunt (всего исправлений: 1)
Ответ на: комментарий от eao197

Спасибо. Все оказалось просто. Достаточно скормить свою репу.

anonymous ()
Ответ на: комментарий от anonymous

Наверняка код пишешь так же, как и в ОП.

Так и пишет:

	Module(const std::string& moduleName, Twainet::IPVersion ipv = Twainet::IPV4, bool isCoord = false)
	  : m_module(0)
	{
		m_module = Twainet::CreateModule(moduleName.c_str(), ipv, isCoord);
		
		AddMessage(new LocalServerAttributesMessage(this));
		AddMessage(new ClientNameListMessage(this));
		AddMessage(new ClientNameMessage(this));
		AddMessage(new SetConfigMessage(this));
		AddMessage(new GetConfigMessage(this));
		AddMessage(new InstallPluginMessage(this));
	}
	virtual ~Module()
	{
		Twainet::DeleteModule(m_module);
	}
...
	virtual void AddMessage(DataMessage* msg)
	{
		m_messages[msg->GetName()] = msg;
	}
...
	std::map<std::string, DataMessage*> m_messages;
};
Голые указатели с утечками, RAII не наблюдается, про exception safety не слышал.

eao197 ★★★★★ ()

уже как 2 года я разрабатываю свой проект, который позволяет осуществлять связь между компьютерами не важно где они находятся

Я для этого у себя использую BTSync и файлы :)

Но я до сих пор не могу придумать как применить эту библиотеку.

Обычно ищут инструменты под задачу, а не задачи под инструмент :D

KRoN73 ★★★★★ ()
Ответ на: комментарий от Manhunt

Нужен список фич, что есть и чего в твоей системе нет по сравнению с другими реализациями IPC.

В смысле, feature matrix, навроде такого:
https://capnproto.org/news/2014-06-17-capnproto-flatbuffers-sbe.html

Manhunt ★★★★★ ()
Последнее исправление: Manhunt (всего исправлений: 1)

js? cpp? No way!

А вообще ведь очень много подобного, а главное, их авторы знают, зачем им эта библиотека

anonymous ()
Ответ на: комментарий от chuppa

daemon и читается почти как «Димон», с ударением на первый слог. Так что, напиши он правильно, Димонов меньше бы не стало ))

anonymous ()

не могу придумать как применить эту библиотеку

«Пишу на С++ потому что могу»

Впрочем, код так себе, в 90-е и в начале 2000-х ещё прокатило бы, но не сейчас.

В общем, присоединяюсь к предыдущим ораторам

  • Изучай альтернативы и делай сравнительный анализ. Это первое, на что смотрят
  • Пиши доки
  • Изучай принципы программирования на современном С++
quoob ()
Ответ на: комментарий от eao197

Ещё и вызов виртуальных функций из конструктора.

slovazap ★★★★★ ()
Ответ на: комментарий от slovazap

Кстати да, не обратил на это внимания.

Чуток в сторону. Вроде как подобные фреймворки — это ниша низкоуровневых языков, вроде C и C++. Но этот код наглядно демонстрирует, зачем нужны Java и C#. И почему лучше пользоваться более безопасными альтернативами C++.

eao197 ★★★★★ ()

man erlang nodes()

anonymous ()

Разработан новый проект, нужны идеи применения

Пацаны, смотрите какую я крутую фигню сделал! Ей можно сделать так! А можно и так! Во! Крутяк!

Вот только на фиг? Чё ей теперь делать-то?

mandala ★★★★ ()

Очень информативные коммиты.

Deleted ()

т.е. оно одновременно и между процессами может связываться и равнозначно между компьютерами?

В самом деле есть ZeroMQ и портом на тучу языков и ОС, тоже может между процессами и между компьютерами.

I-Love-Microsoft ★★★★★ ()

Возьми реализацию lib9p на своем любимом языке и успокойся.

loz ★★★★★ ()

но я до сих пор не могу придумать как применить эту библиотеку

Вся суть велосипедостроения в одной фразе. Надо проекты для решения задач разрабатывать, а не наоборот.

cherry-pick ()

позволяет осуществлять связь между компьютерами не важно где они находятся, в пределах одной сети или же на разных континентах. По своей сути это система межПРОЦЕССного взаимодействия(IPC - RPC), при этом процессы могут находится как на локальном компьютере так и на разных компьютеров.

Кто сказал «QNX»? (ну разве что она не опенсорсная...)

hobbit ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.