API Reference
Complete API documentation for XyPriss framework.
createServer Function
The createServer
function is the primary entry point for creating XyPriss servers.
Syntax
createServer(options?: ServerOptions): XyPrissServer
Parameters
options
(optional): Server configuration object
Returns
Enhanced Express server instance with XyPriss features
Example
import { createServer } from "xypriss";
const server = createServer({
server: {
port: 3000,
host: "localhost",
autoPortSwitch: {
enabled: true,
portRange: [8086, 3010],
},
},
cache: {
strategy: "memory",
maxSize: 100 * 1024 * 1024, // 100MB
ttl: 3600, // 1 hour
},
});
ServerOptions Interface
The main configuration interface for XyPriss servers.
interface ServerOptions {
env?: "development" | "production" | "test";
server?: {
port?: number;
host?: string;
autoPortSwitch?: {
enabled?: boolean;
maxAttempts?: number;
portRange?: [number, number];
strategy?: "increment" | "random" | "predefined";
};
};
cache?: {
strategy?: "auto" | "memory" | "redis" | "hybrid";
maxSize?: number;
ttl?: number;
redis?: {
host?: string;
port?: number;
cluster?: boolean;
nodes?: Array<{ host: string; port: number }>;
};
};
cluster?: {
enabled?: boolean;
workers?: number | "auto";
};
}
HTTP Methods
XyPriss supports all standard HTTP methods with Express-like syntax:
// HTTP Methods
server.get(path, handler);
server.post(path, handler);
server.put(path, handler);
server.delete(path, handler);
server.patch(path, handler);
server.head(path, handler);
server.options(path, handler);
// Middleware
server.use(middleware);
server.use(path, middleware);
Cache Configuration
Memory Cache
const server = createServer({
cache: {
strategy: "memory",
maxSize: 100 * 1024 * 1024, // 100MB
ttl: 3600, // 1 hour default TTL
},
});
Redis Cache
const server = createServer({
cache: {
strategy: "redis",
redis: {
host: "localhost",
port: 6379,
cluster: false,
},
ttl: 7200, // 2 hours
},
});
Hybrid Cache
const server = createServer({
cache: {
strategy: "hybrid",
maxSize: 50 * 1024 * 1024, // 50MB memory
redis: {
host: "localhost",
port: 6379,
},
ttl: 3600,
},
});
Cluster Configuration
Built-in clustering with auto-scaling:
const server = createServer({
cluster: {
enabled: true,
workers: "auto", // Auto-detect CPU cores
autoScale: {
enabled: true,
minWorkers: 2,
maxWorkers: 8,
cpuThreshold: 80, // Scale up at 80% CPU
},
},
});