- Add databases/tile38

Tile38 is an open source (MIT licensed), in-memory geolocation data store,
spatial index, and realtime geofence. It supports a variety of object types
including lat/lon points, bounding boxes, XYZ tiles, Geohashes, and GeoJSON.

Features:

    Spatial index with search methods such as NEARBY, WITHIN, and INTERSECTS.
    Realtime geofencing through persistent sockets or webhooks.
    Object types of lat/lon, bbox, Geohash, GeoJSON, QuadKey, and XYZ tile.
    Support for lots of Clients Libraries written in many different langauges.
    Variety of client protocols, including http (curl), websockets, telnet,
        and the Redis RESP.
    Server responses are RESP or JSON.
    Full command line interface.
    Leader / follower replication.
    In-memory database that persists on disk.

WWW: http://tile38.com/

PR:		210147
Submitted by:	olevole@olevole.ru
This commit is contained in:
Dmitry Marakasov 2016-06-23 23:16:03 +00:00
parent daddf32364
commit db38d296fd
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=417404
8 changed files with 128 additions and 1 deletions

1
GIDs
View File

@ -98,6 +98,7 @@ barman:*:157:
pootle:*:158:
nocat:*:159:
_ypldap:*:160:
tile38:*:170:
sfs:*:171:
agk:*:172:
polipo:*:173:

1
UIDs
View File

@ -104,6 +104,7 @@ barman:*:157:157::0:0:Barman user:/var/barman:/bin/sh
pootle:*:158:158::0:0:Pootle User:/var/db/pootle:/usr/sbin/nologin
nocat:*:159:159::0:0:NoCat Daemon:/libexec/nocat:/sbin/nologin
_ypldap:*:160:160::0:0:YP Ldap unprivileged user:/var/empty:/usr/sbin/nologin
tile38:*:170:170::0:0:Tile38 User:/var/db/tile38:/usr/sbin/nologin
sfs:*:171:171::0:0:Self-Certifying File System:/nonexistent:/usr/sbin/nologin
agk:*:172:172::0:0:AquaGateKeeper:/nonexistent:/nonexistent
polipo:*:173:173::0:0:polipo web cache:/nonexistent:/usr/sbin/nologin

View File

@ -719,7 +719,6 @@
SUBDIR += pxlib
SUBDIR += pxtools
SUBDIR += py-Elixir
SUBDIR += py-mysqlclient
SUBDIR += py-MySQLdb
SUBDIR += py-MySQLdb55
SUBDIR += py-MySQLdb56
@ -754,6 +753,7 @@
SUBDIR += py-mysql-connector-python
SUBDIR += py-mysql-connector-python2
SUBDIR += py-mysql2pgsql
SUBDIR += py-mysqlclient
SUBDIR += py-odbc
SUBDIR += py-oops
SUBDIR += py-oursql
@ -973,6 +973,7 @@
SUBDIR += tcl-sqlite3
SUBDIR += tdb
SUBDIR += tdbc
SUBDIR += tile38
SUBDIR += tinycdb
SUBDIR += tokyocabinet
SUBDIR += tokyotyrant

54
databases/tile38/Makefile Normal file
View File

@ -0,0 +1,54 @@
# Created by: olevole@olevole.ru
# $FreeBSD$
PORTNAME= tile38
PORTVERSION= 1.2.0
CATEGORIES= databases
MAINTAINER= olevole@olevole.ru
COMMENT= In-memory geolocation data store, spatial index, and realtime geofence
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
BUILD_DEPENDS= go>=1.4:lang/go \
bash:shells/bash
RUN_DEPENDS= go>=1.4:lang/go \
bash:shells/bash
USE_GITHUB= yes
GH_ACCOUNT= tidwall
USES= shebangfix
SHEBANG_FILES= build.sh
USE_RC_SUBR= tile38
USERS= ${PORTNAME}
GROUPS= ${PORTNAME}
TILE38_DBDIR?= /var/db/tile38
TILE38_RUNDIR?= /var/run/tile38
SUB_LIST= PORTNAME=${PORTNAME} \
TILE38_USER=${USERS} \
TILE38_DBDIR=${TILE38_DBDIR} \
TILE38_RUNDIR=${TILE38_RUNDIR}
PLIST_SUB= TILE38_USER=${USERS} \
TILE38_GROUP=${GROUPS} \
TILE38_DBDIR=${TILE38_DBDIR} \
TILE38_RUNDIR=${TILE38_RUNDIR}
do-build:
@cd ${WRKSRC} && ./build.sh
do-install:
@${MKDIR} ${STAGEDIR}${TILE38_DBDIR} ${STAGEDIR}${TILE38_RUNDIR}
${INSTALL_PROGRAM} ${WRKSRC}/tile38-cli ${STAGEDIR}${PREFIX}/bin/
${INSTALL_PROGRAM} ${WRKSRC}/tile38-server ${STAGEDIR}${PREFIX}/bin/
do-test:
@cd ${WRKSRC} && ./build.sh test
.include <bsd.port.mk>

View File

@ -0,0 +1,3 @@
TIMESTAMP = 1465389710
SHA256 (tidwall-tile38-1.2.0_GH0.tar.gz) = 8797cfe8ad0f787cc00c26a863329090a929257d9f5c5d8d20c17f05234cb2a5
SIZE (tidwall-tile38-1.2.0_GH0.tar.gz) = 1701880

View File

@ -0,0 +1,45 @@
#!/bin/sh
#
# $FreeBSD: $
#
# PROVIDE: tile38
# REQUIRE: LOGIN
# BEFORE: securelevel
# KEYWORD: shutdown
# Add the following line to /etc/rc.conf to enable `tile38':
#
# tile38_enable="YES"
#
# optional:
#
# tile38_flags (flags): Set extra flags here. More options in tile38(1)
# Default is empty "".
# tile38_user (user): Set user to run tile38.
# Default is "%%TILE38_USER%%".
# tile38_data (data): Set data directory path
# Default is "%%TILE38_DBDIR%%".
. /etc/rc.subr
name="tile38"
rcvar="${name}_enable"
start_cmd="tile38_start"
command="%%PREFIX%%/bin/tile38-server"
pidfile="%%TILE38_RUNDIR%%/$name.pid"
# read configuration and set defaults
load_rc_config "$name"
: ${tile38_enable="NO"}
: ${tile38_user="%%TILE38_USER%%"}
: ${tile38_data="%%TILE38_DBDIR%%"}
tile38_start()
{
/usr/sbin/daemon -f -p ${pidfile} -u ${tile38_user} ${command} -d ${tile38_data} ${tile38_flags} ${rc_arg}
}
run_rc_command "$1"

View File

@ -0,0 +1,18 @@
Tile38 is an open source (MIT licensed), in-memory geolocation data store,
spatial index, and realtime geofence. It supports a variety of object types
including lat/lon points, bounding boxes, XYZ tiles, Geohashes, and GeoJSON.
Features:
Spatial index with search methods such as NEARBY, WITHIN, and INTERSECTS.
Realtime geofencing through persistent sockets or webhooks.
Object types of lat/lon, bbox, Geohash, GeoJSON, QuadKey, and XYZ tile.
Support for lots of Clients Libraries written in many different langauges.
Variety of client protocols, including http (curl), websockets, telnet,
and the Redis RESP.
Server responses are RESP or JSON.
Full command line interface.
Leader / follower replication.
In-memory database that persists on disk.
WWW: http://tile38.com/

View File

@ -0,0 +1,4 @@
bin/tile38-server
bin/tile38-cli
@dir(%%TILE38_USER%%,%%TILE38_GROUP%%,) %%TILE38_DBDIR%%
@dir(%%TILE38_USER%%,%%TILE38_GROUP%%,) %%TILE38_RUNDIR%%