Tntnet jest modułowa, wielowątkowy webapplicationserver napisany od podstaw w C ++.
Aby utworzyć webapplications Tntnet ma szablon języka nazwie ecpp podobny do PHP, JSP i mason, gdzie można zamieścić C ++ - kod html-wewnątrz strony do generowania zawartości aktywnej.
W ecpp-pliki są wstępnie skompilowana do C ++ - zajęcia zwane komponenty i skompilowane i połączone w udostępnionej biblioteki. Proces ten odbywa się w compiletime. Serwer WWW Tntnet potrzebuje tylko skompilowany componentlibrary.
Ponieważ webapplications są kompilowane do kodu natywnego, są bardzo szybkie i kompaktowe.
Składniki mogą wywołać inne składniki. Więc można utworzyć buildingblocks HTML-części i nazywają je na innych stronach jak podprocesów.
Wnioski są przetwarzane przez tntnet i wniosek, informacje są łatwo dostępne dla komponentów. Obsługuje GET i POST-parametry i wieloczęściowych Mime-prośby o przesyłania pliku.
Templatelanguage również wsparcie dla aplikacji umiędzynarodowionych. Możesz łatwo stworzyć webapplications dla różnych języków.
Inne cechy to: ciasteczka, HTTP-upload, automatyczne parsowanie żądanie-parametr i konwersji, automatyczne sessionmanagement, zakrojony zmiennych (wniosek, wniosek i sesji), internacjonalizacji, keep-alive.
Logowanie odbywa się poprzez cxxtools, która zapewnia wyjątkową API dla log4cpp, log4cxx lub prostego logowania do plików lub konsoli.
Tntnet jest w pełni wielowątkowy i wiele pracy włożono w co skalowalne. Wykorzystuje dynamiczny pulę workerthreads,, odpowiadającą prośby HTTP klientów.
Ssl jest obsługiwane przez biblioteki OpenSSL
Opis .
- napisał w standardzie-c ++ z Linuksem,
- testowane w & quot; Debian Woody x86 & quot; i & quot; SuSE Linux 9.1 x86_64 & quot;
- Użyj szablonu, aby umieścić w języku c ++ - kod html podobna do PHP, JSP, ASP lub Mason,
- Koncepcja komponentów pozwala modularyzacja webapplications
- wielowątkowy,
- skompilować webapplication tym grafiki w jednej wspólnej biblioteki
- POST-Get- i parametry są przetwarzane i są łatwo dostępne
- wsparcie dla plików przesłanych
- wsparcie dla i18n z webapplications -. Pojedynczym kodzie dla różnych języków,
Co nowego w tym wydaniu:
- Nowy moduł proxy:
- Nowy moduł proxy @ tntnet pozwala przekierować żądanie do innych serwerów HTTP.
- Bezpieczne zakres sesji dla zmiennych ważnych tylko w sesji SSL:
- Nowy typ zakres `` umożliwia definiowanie zmiennych, które są ważne tylko na połączenia SSL. Również oddzielny plik cookie, który jest wysyłany atrybut doradzanie przeglądarki, aby używać go tylko wtedy, gdy ssl jest pozwala.
- Konfiguracja tntnet xml (lub json), w tym logowania:
- Wcześniej tntnet został skonfigurowany z pliku tekstowego z prostym, ale własnym formacie. Rejestrowanie zostało skonfigurowane w osobnym pliku o innym formacie. Oba łączy się teraz w jednym pliku xml.
- Usuń bibliotekę cgi:
- Kiedyś biblioteka, która pozwala na uruchamianie składników ecpp jako procesy CGI. Zastosowanie ograniczone, a wyniki w cgi jest zawsze złe. O ile wiem, nikt nie używał go (nie bez powodu). Stąd jest on usuwany teraz.
- Rozszerz mapowanie url z mapowaniem metodą lub ssl:
- Mapowanie do elementów wniosków zostanie przedłużony. URL nie tylko mogą być stosowane w stanie, ale również metodą HTTP lub stanów SSL. Poprzednia oddzielne mapowania na wirtualnego hosta jest teraz również zdefiniowane jako warunku odwzorowania.
- ramy Wykorzystanie serializacji czytać% zmienne konfiguracyjne od konfiguracji tntnet do obsługi złożonych konfiguracji:
- tag ecpp `` umożliwia aplikacjom internetowym odczytać wartości z pliku konfiguracyjnego tntnet. Dawniej tylko zmienne skalarne można odczytać. Teraz za pomocą cxxtools serializacji obiektów złożonych mogą być konfigurowane i przekazywane do aplikacji internetowej.
- ecpp kompilator nie zatrzymują się na pierwszym błędzie wszelkie więcej, ale stara się znaleźć więcej problemów:
- kompilator ecpp `ecppc` zatrzymał kompilacji pierwszego błędu. Teraz stara się odzyskać i kontynuuje zbieranie i raportowanie błędów.
- Pozwala aplikacji, aby usunąć bieżącą sesję:
- Wywołanie nową metodę `request.clearSession ()` usuwa wszystkie zmienne sesji po bieżącego żądania.
- Przeczytaj nazw dla multibinary składnika ewentualnie z pliku za pomocą opcji -i w ecppc:
- elementy Multibinary zawiera zbiór plików statycznych, który jest kompilowany jako pojedynczy składnik tntnet. Pomaga zapisywanie narzut ponieważ każdy komponent potrzebuje kod, który sprawia, że wpłacone. Ponieważ lista plików statycznych wykorzystywanych w aplikacji internetowej może być dość długi, często jest to wygodne do prowadzenia listy w oddzielnym pliku. Również bardzo długa lista mogą przedłużyć maksymalny dozwolony długość polecenia powłoki. Teraz `ecppc` może odczytać listy z pliku w celu rozwiązania tego.
- Argumenty mapowanie url mają teraz nazwy:
- Podczas mapowania żądanie do składnika, argumenty mogą być przekazywane z konfiguracji do komponentu. Wcześniej była to tylko lista wartości. Teraz wartości ma nazwiska, które sprawia, że obsługa jest łatwiejsze i bardziej czytelny.
- Możliwość distinquishing GET i POST między argumentami:
- Ecpp umożliwia zdefiniowanie parametrów zapytania przy użyciu `` znacznik. Tntnet przeszedł tu wszystkie GET i POST parametry. Dla programistów trudno było dowiedzieć się, czy argumenty zostały przekazane przez GET lub POST. Teraz argumenty mogą być zdefiniowane w `` lub `` sekcja dostać tylko parametry GET lub POST.
- Poprawki i optymalizacje:
- Drobne poprawki i optymalizacje wykonywane są w tntnet.
Co nowego w wersji 2.1:
- Jego czas aktualizacji. Wydania te są wynikiem 2 latach rozwoju pokojowe wielu ulepszeń.
- W tej wersji dodano json i jsonrpc do cxxtools jak również szybki binarne serwera RPC i klienta. Oba są oparte na lepsze ramy serializacji cxxtools.
- json i format binarny może być stosowany jako format zapisu. Również serializacji i deserializacji csv jest możliwe.
- ciąg Unicode jako specjalizacji std :: basic_string dostał główną przepisać z krótkim optymalizacji łańcucha.
- Tntnet ma przede wszystkim wiele małych usprawnień, lepszą zgodność ze standardami i nieco wyższą wydajność.
- Tntdb dostałem sterownik replikacji, który jest zdolny do replikacji danych pomiędzy bazami danych bez wsparcia bazy danych. Klasa dziesiętny został przepisany i dostał unittests. Nowy RowReader klasy sprawia, że kod jest bardziej czytelny, gdy wiele kolumn są odczytywane z rzędu wynik. Nowa klasa BlobStream implementuje interfejs std :: iStream na plamy.
Co nowego w wersji 2.0:
- Po więcej niż 2 lata nowa bez stabilnych wydaniach jest czas aktualizacje. Cxxtools ma gorących ogromne ulepszenia i udoskonalenia, takie jak XMLRPC, ram sygnału gniazda, anynchronous I / O i innych.
- Oznaczało to kilka zmian API. Nadal większość istniejącego kodu powinny działać. Tntnet i tntdb potrzebne pewne zmiany do tego, aby nowe tntnet i tntdb komunikaty muszą cxxtools 2.0.
- Tntnet ma wiele małych fabularnych i podniesienie wydajności. Na szczęście nie było dużo potrzeba zmian API. Prawie aplikacje powinny działać z pudełka przez rekompilacji.
- Tntdb dostałem jakieś udoskonalenia. Najważniejsze z nich to być może wsparcie dla auto zwiększonymi wartościami za pomocą metody :: Połączenie tntdb :: lastInsertId (std :: string) oraz wsparcie dla użytkowników określonych typów przeciążenia 2 operatorów.
Co nowego w wersji 1.6.99:
- Tntnet ma kilka drobnych poprawek i są dostosowane do zmian API w cxxtools (które są dość małe).
Komentarze nie znaleziono