Introduzindo o Tufão

INTRODUÇÃO (a parte chata)

Atualmente a internet possui uma importância imensurável para o ato de compartilhamento de informações e nesse cenário o protocolo http ainda se destaca por ser a base responsável por garantir a interoperabilidade de computadores que foram projetados em 1997 e computadores que foram vendidos ontem, garantindo assim que tais informações trocadas entre esses nós possam ser preservadas e passadas adiante.

Para os desenvolvedores, uma das partes mais legais é que o protocolo foi projetado de forma que qualquer pessoa pode criar uma implementação compatível com o mesmo. Algumas características do HTTP são:

  • É baseado, em sua maior parte, em texto
  • É um protocolo bem definido
  • Está publicamente disponível
  • Não possui mais de 6000 páginas (esse ponto na verdade é só uma crítica a uma especificação não relacionada ao HTTP que existe por aí)

Caso você opte por respeitar o padrão, o que quer que você desenvolva estará seguindo um padrão suportado por todos os servidores webs e http user agents (isso inclui o firefox, o chromium, o internet explorer, …) existentes. Barreiras dificultadoras que só beneficiam algumas entidades não são impostas a você, como ocorre no desenvolvimento de aplicativos para iPhone e outras app-stores.

O projeto Tufão (a parte legal)

Durante o desenvolvimento de um dos projetos nos quais estive envolvido eu tive a oportunidade de trabalhar com node.js, uma API para javascript que fornece uma abstração do HTTP. Ela é flexível o suficiente para a criação de aplicações HTTP não-convencionais para as quais muitas frameworks não estão preparadas, como, por exemplo, streaming de conteúdo gerado dinamicamente no servidor ou mesmo o uso de WebSockets.

Havia em mim um sentimento de insatisfação devido a falta de uma framework web para C++ que fosse, ao mesmo tempo, produtiva e boa o suficiente. Então, pouco tempo após conhecer o projeto node.js resolvi portar sua API para C++. Assim nasceu o projeto Tufão.

Para me poupar tempo e não reinventar a roda, resolvi optar pelo uso do Qt, pois o mesmo disponibiliza um loop de eventos assíncrono e implementações multiplataformas de conceitos necessários, tais como sockets. Acho que sua popularidade entre muitos desenvolvedores de C++ deve ajudar na aceitação do Tufão.

Diferente dos meus projetos anteriores, desenvolvi o design do Tufão antes de sua implementação, para garantir tanta qualidade e facilidade de uso quanto possível. Assim, no começo havia somente um monte de arquivos de cabeçalho e comentários que o doxygen podia usar para gerar documentação, mas após várias e várias revisões a API chegou num ponto estável e bom o suficiente para uma primeira versão.

Então, após muitas e muitas horas de esforço, apesar de não implementar ainda toda a API proposta, o Tufão chegou em sua primeira versão funcional e eu fiz um pequeno vídeo demonstrando um exemplo com o firefox:

Pretendo, no futuro:

  • Terminar a implementação seguindo a proposta de API criada
  • Automatizar/facilitar o processo de instalação
  • Avaliar e implementar mais protocolos utilizados na web, como o WebSocket e o SOCKET.IO
  • Criar um backend HTML5 do Qt

O Tufão está licenciado sob a LGPL, permitindo a criação de aplicações comerciais e pode ser encontrado em http://tufao.googlecode.com/ . Acho que com esse texto deixei claro o objetivo do Tufão e assim podemos dizer que o projeto está oficialmente anunciado.

🙂

Tags:, , ,

5 responses to “Introduzindo o Tufão”

  1. dielsonsales says :

    Hah, então esteve trabalhando nisso sozinho?

    • Vinipsmaker says :

      Até o momento em que escrevi esse artigo estava, mas graças a essa divulgação inicial houve um programador que vinha fazendo um trabalho com propósito similar que entrou em contato, sugerindo unirmos esforços, então espero que isso mude em um futuro próximo.

  2. Luis Gustavo Barreto (@gustavosbarreto) says :

    Muito interessante tchê. Já pensou em integrar com QtScript? Algo parecido com o expressjs.

    • Vinipsmaker says :

      Eu tinha pensado em criar um módulo para PHP para ajudar a integrar os projetos feitos com Tufão com, por exemplo, o mediawiki, mas essa sua ideia também muito é boa.

      Mas essa do expressjs é realmente uma ótima ideia, vou colocar na lista de TODO para implementar depois. Só preciso pensar um pouco sobre em qual camada essa parte vai entrar para não virar uma framework Megazord.
      =p

Trackbacks / Pingbacks

  1. Tufão 0.1 « Vinipsmaker labs - 2012/06/04

Comentários (with MarkDown support)

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: