ACL alternatives and similar packages
Based on the "Security" category.
Alternatively, view ACL alternatives based on common mentions on social networks and blogs.
-
Lean and Mean Docker containers
Slim(toolkit): Don't change anything in your container image and minify it by up to 30x (and for compiled languages even more) making it secure too! (free and open source) -
age
A simple, modern and secure encryption tool (and Go library) with small explicit keys, no config options, and UNIX-style composability. -
Themis by Cossack Labs
Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across 14 platforms. -
acra
Database security suite. Database proxy with field-level encryption, search through encrypted data, SQL injections prevention, intrusion detection, honeypots. Supports client-side and proxy-side ("transparent") encryption. SQL, NoSQL. -
ToRat
DISCONTINUED. ToRat is a Remote Administation tool written in Go using Tor as a transport mechanism and RPC for communication -
dongle
A simple, semantic and developer-friendly golang package for encoding&decoding and encryption&decryption -
teler-waf
teler-waf is a Go HTTP middleware that protects local web services from OWASP Top 10 threats, known vulnerabilities, malicious actors, botnets, unwanted crawlers, and brute force attacks. -
go-peer
🔐 🕵🏻 End-to-End encryption and Theoretically-Provable anonymity in a library wrapper. Confirmed by theoretical and research papers. The Hidden Lake anonymous network is located inside the project: https://github.com/number571/go-peer/tree/master/cmd/hidden_lake -
simple-scrypt
A convenience library for generating, comparing and inspecting password hashes using the scrypt KDF in Go 🔑 -
goSecretBoxPassword
A probably paranoid Golang utility library for securely hashing and encrypting passwords based on the Dropbox method. This implementation uses Blake2b, Scrypt and XSalsa20-Poly1305 (via NaCl SecretBox) to create secure password hashes that are also encrypted using a master passphrase. -
passwap
Package passwap provides a unified implementation between different password hashing algorithms. It allows for easy swapping between algorithms, using the same API for all of them. -
go-generate-password
Password generator written in Golang, usable as a CLI or Go library. Provides options for human readable and accessibility friendly passwords. -
secureio
An easy-to-use XChaCha20-encryption wrapper for io.ReadWriteCloser (even lossy UDP) using ECDH key exchange algorithm, ED25519 signatures and Blake3+Poly1305 checksums/message-authentication for Go (golang). Also a multiplexer. -
goArgonPass
goArgonPass is a Argon2 Password utility package for Go using the crypto library package Argon2 designed to be compatible with Passlib for Python and Argon2 PHP. Argon2 was the winner of the most recent Password Hashing Competition. This is designed for use anywhere password hashing and verification might be needed and is intended to replace implementations using bcrypt or Scrypt.
InfluxDB - Purpose built for real-time analytics at any scale.
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of ACL or a related project?
Popular Comparisons
README
ACL - Access Control List
ACL is a simple but powerful Access Control List manager
Installation
go get -u github.com/txgruppi/acl-go
Example
You should not ignore the errors returned by the methods
package main
import (
"fmt"
"github.com/txgruppi/acl-go"
"github.com/txgruppi/acl-go/driver/memory"
)
func main() {
driver := memory.NewDriver()
// Driver can be directly used as ACL managers
var manager acl.ACL = driver
// Set the default policy as Deny
acl.SetDefaultPolicy(acl.Deny)
// Get some users
userCEO, _ := acl.GetActor("userCEO_UUID")
userDeveloper, _ := acl.GetActor("userDeveloper_UUID")
// Get some actions
accessBackAccount, _ := acl.GetAction("accessBackAccount")
accessProductionServer, _ := acl.GetAction("accessProductionServer")
// Set rules
acl.Set(userCEO, accessBackAccount, acl.Allow)
acl.Set(userDeveloper, accessProductionServer, acl.Allow)
// Check using the ACL manager
allowed, _ := acl.IsAllowed(userCEO, accessBackAccount)
fmt.Println(allowed) // true
allowed, _ = acl.IsAllowed(userDeveloper, accessBackAccount)
fmt.Println(allowed) // false
// Check using the Actor or Action struct
allowed, _ := userCEO.IsAllowed(accessProductionServer)
fmt.Println(allowed) // false
allowed, _ = accessProductionServer.Allows(userDeveloper)
fmt.Println(allowed) // true
}
Tests
go get -u -t github.com/txgruppi/acl-go
cd $GOPATH/src/github.com/txgruppi/acl-go
go test ./...
License
MIT
*Note that all licence references and agreements mentioned in the ACL README section above
are relevant to that project's source code only.