Knihovny POCO C ++ - POCO C++ Libraries
Vývojáři | Günter Obiltschnig a kol. |
---|---|
První vydání | 21. února 2005[1] |
Stabilní uvolnění | |
Úložiště | Repozitář POCO |
Napsáno | C ++ |
Operační systém | Cross-platform: Desktopový server: Okna, Linux, Operační Systém Mac, Solaris, HP-UX, AIX Vestavěné mobilní zařízení: Windows Embedded Compact, vestavěný Linux, Android, iOS, QNX, VxWorks |
Plošina | PAŽE, IA-32, x86-64 |
K dispozici v | Angličtina |
Typ | knihovna nebo rámec |
Licence | Zvyšte software 1.0 |
webová stránka | pokoprojekt |
The POSTable COmponents (POCO) C ++ knihovny jsou počítač software, sada třídy knihovny pro vývoj počítačová síť -centrický, přenosný aplikace v programovacím jazyce C ++. Knihovny pokrývají funkce jako vlákna, vlákno synchronizace, souborový systém přístup, proudy, sdílené knihovny a načítání tříd, Internetové zásuvky a síť komunikační protokoly (HTTP, FTP, SMTP atd.) a zahrnují HTTP server a XML analyzátor s SAX2 a DOM rozhraní a SQL přístup do databáze. Díky modulárnímu a efektivnímu návrhu a implementaci se knihovny dobře hodí vestavěný systém rozvoj.
Knihovny jsou bezplatný open source software distribuováno pod Zvyšte licenci softwaru 1.0.
Přehled
POCO je sada knihoven C ++ poskytujících uživatelům podporu knihoven podobnou té, která se nachází v jiných vývojových prostředích, jako je Knihovna tříd Java, .NET Framework nebo Apple's Cocoa. POCO je zaměřeno na aplikační domény zaměřené na síť a je vyvíjeno s moderním vybavením a technikami standardní knihovny ANSI / ISO C ++ a C ++ Standard Library s důrazem na výkonnou funkčnost, snadné použití a konzistenci. Řízeno primárně kvalitou kódu, konzistentním stylem a testováním jednotek, POCO je vysoce přenosný a již je portován na celou řadu různých platforem.
Dějiny
Hierarchie knihoven
Od roku 2017[Aktualizace]Knihovny POCO C ++ jsou rozděleny do pěti základních knihoven s volitelnými doplňkovými knihovnami, které jsou k dispozici u každé verze. Návrh a hierarchie POCO C ++ je považován za dobře navržený.[3][4] Pět základních knihoven komponent pokrývá následující oblasti, které najdete v základním vydání:
- Nadace
- Abstrakce platformy - Usnadňuje přenesení problémů základních typů atd.
- Správa paměti - Akvizice zdrojů je inicializace (RAII), auto_ptr, sběr odpadků počítání odkazů atd.
- Řetězcové nástroje
- Zpracování chyb - Rozšířené třídy výjimek
- proudy - Podpora kódování a dekódování a filtrování
- vlákna - Podpora souběžného zpracování
- Datum a čas - Podpora data a času včetně formátování a časovačů s vysokou přesností
- Souborový systém - Podpora abstraktního souborového systému
- Protokolování - protokolování aplikací a systémů, strategie filtrování a protokolování
- Procesy - meziprocesová komunikace a sdílení paměti
- sdílené knihovny - Podpora dynamické knihovny
- Oznámení - Podpora abstraktních oznámení
- Události - abstrahovaná podpora a strategie událostí
- Krypta - generování náhodných čísel, přehledy a enkódovací / dekódovací stroje
- Text - podpora kódování Unicode
- Regulární výrazy - Na základě Perl kompatibilního regulárního výrazu
- URI - Podpora univerzálního identifikátoru zdroje
- UUID - Podpora a generátory univerzálně jedinečných identifikátorů
- Podpora mezipaměti - abstrahovaná podpora strategie
- Síť
- XML
- SAX2
- Model objektu dokumentu (DOM)
- XML spisovatel
- JSON
- API pro čtení a zápis JSON
- Util
- Konfigurační soubory
- Možnosti příkazového řádku
- Nástroje a aplikační rámec serveru
Jeden cíl návrhu mnoha cílených rozhodnutí je založen na POCO C ++ a poskytuje snadno použitelnou knihovnu komponent, která funguje po vybalení z krabice. Od roku 2017[Aktualizace]Knihovny jsou k dispozici ve dvou formátech balíčků: základní a kompletní edice. Kompletní vydání mimo jiné zahrnuje schopnosti NetSSL, Crypto, Zip a Data. Základní vydání není, a tak eliminuje závislost na externích zařízeních, jako jsou závislosti OpenSSL, ODBC a MySQL.
Být otevřeným zdrojem umožňuje a podporuje vývoj dalších funkcí knihovny. Návrh a vývoj stávající a budoucí podpory knihoven je řízen pragmatickými potřebami uživatelské základny. Přidání knihovny se vyskytují ve vývojovém prostředí karantény a jsou zkontrolovány a integrovány do hlavních verzí knihoven, jak je schváleno základním vývojovým týmem se vstupem přispěvatelů.
Historie vydání
- 2004 - Günter Obiltschnig zahájil POCO vývojem třídních knihoven, protože nebyl spokojen s tím, co bylo k dispozici v knihovnách tříd C ++ pro programování zaměřené na síť.
- 21 února 2005 - první veřejné vydání dne SourceForge, pod Licence Sleepycat, obsahovaly knihovny podpory Foundation a XML.
- Květen 2005 - Aleksandar Fabijanic učinil první příspěvek.
- 19. ledna 2006 - Byl vydán POCO 1.0, včetně knihovny Net.
- Červenec 2006 - POCO získal licenci pod Boost licencí.
- Květen 2007 - Byla vydána verze POCO 1.3, včetně knihovny dat
- Prosinec 2010 - Byla vydána verze POCO 1.4, včetně mnoha vylepšení.
- Prosinec 2014 - Byla vydána verze POCO 1.6, včetně knihoven JSON a MongoDB a mnoha dalších vylepšení.
- Březen 2016 - Byla vydána verze POCO 1.7, včetně mnoha vylepšení.
- Březen 2018 - Bylo vydáno POCO 1.9, včetně podpory internacionalizovaných doménových jmen a dodatků k podporovaným kódováním textu.
Uživatelé
Mezi uživatele patří:[5]
- Appcelerator Titanium
- Schneider Electric Budovy (dříve TAC )
- Technologie CACE
- Kudlanka
- Sada nástrojů pro interakci s lékařským zobrazováním
- OpenFrameworks
- GLUEscript
- SeguriData
- Aysso Systems
- Tonido
- Gladinet
- Zařízení americké realistické komunikace (CRA)
Viz také
- Adaptivní komunikační prostředí (ESO)
- Boost (knihovny C ++), velká sada knihoven C ++
- Loki (C ++)
- Seznam knihoven šablon C ++
- Seznam vícevláknových knihoven C ++
- PTypy (knihovna přenosných typů C ++)[6][7]
Poznámky
- ^ 21 února 2005: První veřejné vydání dne SourceForge, pod Licence Sleepycat, obsahovaly knihovny podpory Foundation a XML.
- ^ „Zprávy - pocoproject / poco“. Citováno 2020-03-01.
- ^ http://cppdepend.wordpress.com/2009/09/24/why-poco-is-well-implemented-and-designed/
- ^ http://accu.org/content/conf2009/ACCU2009_Bernhard_Merkle_StopTheSoftwareArchitectureErosion.pdf
- ^ http://pocoproject.org/forum/viewtopic.php?f=11&t=3826&sid=d4ba687212ee105852f927e4ce8a5023
- ^ "Knihovna přenosných typů C ++". Archivovány od originál dne 2010-04-02. Citováno 2010-03-21.
- ^ Knihovna přenosných typů C ++ (PTypes) na SourceForge.net
externí odkazy
- Oficiální webové stránky
- Knihovny POCO C ++ na SourceForge.net
- Oficiální dokumentace webových stránek POCO
- Proč je POCO dobře implementováno a navrženo?
- POCO Seznam změn pokrývající časové linie
- Aleksandar Fabijanic, Dynamic Any, část 1, přetížení ACCU 86 (srpen 2008)
- Aleksandar Fabijanic, Dynamic Any, část 2, přetížení ACCU 87 (říjen 2008)
- Rozhovor s CodeGuru s Bjarne Stroustrup kde zmiňuje POCO