Facebook zveřejnil svou interní knihovnu C++ Folly

Sdílet

 Autor: © michelangelus - Fotolia.com
Facebook vydal knihovnu C++ softwarových komponentů, které používá při provozu svých vlastních stránek.

Společnost Facebook v sobotu oznámila vydání knihovny C++ softwarových komponentů používaných k chodu sociální sítě. Díky zveřejnění této knihovny nazvané Folly bude Facebook schopen vydat více svých interních programů spoléhajících na komponenty v této knihovně, jako open source.

„Jasná překážka pro spuštění více projektů byla, že každý náš projekt open source musel překonat závislost na interních, nevydaných knihovnách kódu,“ napsal Jordan DeLong, softwarový specialista, který oznámil vydání knihovny ve svém příspěvku na Facebooku. Vydání oznámili také specialisté Facebooku na konferenci C++, která probíhala v areálu společnosti v kalifornském Menlo Parku.


Doposud se Facebook spoléhal s provozem svých stránek na software open source jako MySQL, PHP a Memcached. A tak se společnost rozhodla, že také vydá své vlastní interní programy jako software open source. Například kompilátor jazyka PHP HipHop a nástroj Thrift, které sdílejí stejnou základnu.

Pro mnoho ze svých vydání open source museli vývojáři Facebooku přepsat některé z funkcí, které byly z této knihovny vypůjčeny. Uveřejněním samotné knihovny bude Facebook schopen „pokračovat s vydáváním částí open source, bez nutnosti předělávání svých interních procedur,“ napsal DeLong.

Podle DeLonga by se na knihovnu měli podívat i vývojáři, kteří neplánují aplikace vyvinuté Facebookem používat, protože obsahují mnoho utilit, které je možné použít i v jiném prostředí. DeLong také vyzdvihl, že mnoho komponentů ve Folly funguje rychleji než jejich ekvivalenty dostupné jinde. „Naší motivací bylo vytvořit komponenty rychlejší a efektivnější, než které jsme používali v minulosti,“ napsal. Tyto utility byly navrženy k použití ve vytíženém pracovním prostředí, napříč tisíci servery.

Komponenty zahrnují celou řadu funkcí. Jeden z komponentů byl navržen například k efektivnějšímu využití paměti, utilita AtomicHashMap snižuje čas, po který jsou data uzavřena v paměti operací, což může zpomalit výkon a ve vytíženém prostředí způsobit problémy. Komponenty pro práci s řetězci využívají méně cyklů CPU než formáty v jakékoliv jiné knihovně C++, napsal DeLong.

Knihovna Folly je ke stažení na GitHubu. Podle DeLonga bude Facebook přidávat nové komponenty ve chvíli, kdy budou připravené.