Current Project

snaplock

Introduction

The snaplock project is part of the snapwebsites environment. It allows for locking the entire cluster for various resources. A resource has a URL which is what we use to create the lock. The URL can be global to the whole cluster, specific to a website, or even specific to one special variable in a specific page of a specific website (very small granularity is possible.) At this time only exclusive locks are available. It is planned to add a semaphore capability which will offer a Read/Write (exclusive) or Read-Only (shared) lock mechanism.

The snaplock tool runs on any ...

snaprfs is a daemon used to replicate files between computers on your Snap! cluster.

This is somewhat similar to what Hadoop is expected to do.

There are several capabilities as described below.

Synchronize Directory

Keep a directory synchronized by copying the newest version of a file to all the other computers that do not already have it.

This is used by the snapdbproxy to manage the directory holding all the tables.xml files describing the Cassandra database tables (with table name, usage, and column definitions.)

snaprfs keeps the files meta data in place (i.e. stat() information, ...

Introduction

libaddr is an easy to use C++ library that parses IP addresses to C structures and C++ objects. This includes parsing one or more IPv4 and IPv6 addresses, with a port or a CIDR mask.

The library also includes functions to list interfaces (i.e. "eth0", "eth1", etc.) and your route tables (see route(8).) The library actually includes a tool, ipv4_routes, one can use to list routes as the libaddr sees them.

csspp

CSS Preprocessor (csspp) is a scripting language that transforms advanced (extended) CSS code into a script that browsers can read.

The input to csspp can be the same as standard CSS, or it can use extensions as described below such as using basic math, embedding rules in other rules (cascading by nesting) and many other things.

The project offers a C++ library that can readily be used in your own C++ project and a command line tool.

Status: version 1.0.10 released.

I have go a complete csspp command line to compile your CSS or SCSS files to one of 4 available formats.

...

as2js

as2js compiler

The as2js compiler and library is used to convert C++ like scripts in JavaScript that will run in your browsers. The name comes ActionScript which is an extension of the ECMAScript language used by Flash Adobe that offers real classes, interfaces, and a complete system environment, contrary to browsers that only offer prototypes which are difficult to work with for most users.

Current status: in development... we are fixing problems by writing a complete test suite with 100% coverage whenever possible. You can find the status of the coverage and tests below.

The source code compiles, but most certainly does not work as expected yet. You can find it on SourceForge.net here:

http://sourceforge.net/p/snapcpp/code/ci/master/tree/as2js/

Introduction

We created a graphical based tool to check out a Cassandra database. Because of the possible cheer size of a Cassandra database, the tool is somewhat limited. At this time it will only really work well on smaller database, This is particularly practical for development when you test new things and want to make sure that the database includes the data that you expect of your tool.

Snap! CMake Modules

Introduction

Snap! comes with many different projects, all of which need a common set of cmake rules and some of those are rather complex. For that reason we created a common project used to compile all of those projects. This project is the Snap! CMake Modules.

Download

At this point this project is available as source on our git repository at SourceForge.net or as a Debian package on Launch PAD.

sudo add-apt-repository ppa:snapcpp/ppa
sudo apt-get update
sudo apt-get install snapcmakemodules

Support

You got a problem with the scripts? An idea to improve them? Please post a ...

Snap! Manager

Introduction

WARNING: We are in the process of replacing this tool with snapmanager.cgi and snapmanagerdaemon which together allow an administrator to manage his cluster of computers. We already installed a 12 computer cluster with these two tools. At this time, the snapmanager is still necessary to setup the domains and websites tables, but that too will be converted to an interface accessible through snapmanager.cgi.

The Snap! Manager graphical tool was created in order to setup the basics in the database. This is important because without those basics snapcgi and snapserver do not know ...

Introduction

This project is an advanced getopt() class to use with your C++ projects. It handles most everything that GNU-like tools offer as far as command line options go.

The main concept is for you to have as little to do as possible to parse your command line arguments. The library expects a table of available options with a short and long version of the options, and whether they accept arguments (i.e. -f <filename>).

In your C++ program you can then just check whether a parameter is defined or not with the is_defined() and get the value as a string, an integer, etc. as ...

libQtSerialization

Serialization Made Easy with Qt

Qt Serialization logoThe libQtSerialization library is a Qt extension that makes it really easy to serialize your data in a forward and backward compatible way1.

The library is composed of two sides: the QWriter which helps you serialize data, and the QReader that helps you unserialize data.

  • 1. Being foward and backward compatible means you should be able to load your serialized data from newer and older versions of your software without having to tweak the serialized data before hand.
Syndicate content Syndicate content

Snap! Websites
An Open Source CMS System in C++

Contact Us Directly